Utilizando Spring, hibernet e JPA.
Já tentei destas 4 maneiras e nenhum eu consegui persistir.:
private Object persist(Object objeto) {
EntityTransaction et = entityManager.getTransaction();
et.begin();
entityManager.detach(objeto);
entityManager.persist(objeto);
entityManager.flush();
et.commit();
}
private Object persist(Object objeto) {
entityManager.detach(objeto);
entityManager.persist(objeto);
entityManager.flush();
}
@Transactional
private Object persist(Object objeto) {
entityManager.detach(objeto);
entityManager.persist(objeto);
entityManager.flush();
return objeto;
}
@Transactional
private Object persist(Object objeto) {
EntityTransaction et = entityManager.getTransaction();
et.begin();
entityManager.detach(objeto);
entityManager.persist(objeto);
entityManager.flush();
et.commit();
return objeto;
}
private EntityManagerFactory factory;
private EntityManager entityManager;
public EntityManager getEntityManager() {
if (entityManager == null) {
try {
// Obtém o factory a partir da unidade de persistência.
factory = Persistence.createEntityManagerFactory("desif");
// Cria um entity manager.
entityManager = factory.createEntityManager();
// Fecha o factory para liberar os recursos utilizado.
} finally {
// factory.close();
}
}
return entityManager;
}
persistence
<persistence-unit name="desif" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<properties>
<property name="hibernate.hbm2ddl.auto" value="none" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="false" />
<property name="show_sql" value="true" />
</properties>
</persistence-unit>
</persistence>