EntityManager persist() method does not insert record to database

hibernate, jpa, persist, spring

Solution

Are you getting a specific exception? It would be helpful to know what it is if you are.

There are a number of similar problems to this already on Stackoverflow:

Spring transactional context doesn't persist data

Spring, Hibernate & JPA: Calling persist on entitymanager does not seem to commit to database

These suggest that you should try adding `em.flush()` after the `em.persist(chain)`, and altering the `@transactional` annotations

You should also check that you have enabled transactional annotations through a line such as :

<tx:annotation-driven transaction-manager="transactionManager"/> 

in your .xml configuration

Problem

I have problem with using `EntityManager.persist(Object)` method. Now when i get rid of other problems, by app work without Exception but object is not put in my database. my entity class: ``` @Entity @Table(name ="Chain") public class Chain implements Serializable{ @Id @Column(name = "id") private Long id; @Column(name = "date") private Date date; @Column(name = "name") private String name; //setters and getters } ``` my dao class: ``` @Transactional @Repository("ChainDao") public class ChainDaoImpl implements ChainDao{ private EntityManager em; @PersistenceContext public void setEntityManager(EntityManager em) { this. em = em; } public int saveChain(Chain chain) { chain.setDate(new Date()); chain.setId((long)44); Boolean a; em.persist(chain); return 222; } } ``` my xml context: ``` <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" > <property name="persistenceXmlLocation" value="classpath*:META-INF/persistence.xml"></property></bean> <bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" /> <bean class="org.springframework.orm.jpa.JpaTransactionManager"> <property name="entityManagerFactory" ref="entityManagerFactory" /> </bean> <bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> <property name="entityManagerFactory" ref="entityManagerFactory" /> </bean> ``` and `pereistence.xml`: ``` <persistence xmlns="http://java.sun.com/xml/ns/persistence" version="1.0"> <persistence-unit name="sample"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <!-- Scan for annotated classes and Hibernate mapping XML files --> <properties> <property name="hibernate.archive.autodetection" value="class, hbm"/> <property name="hibernate.connection.driver_class" value="org.postgresql.Driver"/> <property name="hibernate.connection.url" value="jdbc:postgresql://localhost:5432/database"/> <property name="hibernate.connection.username" value="postgres"/> <property name="hibernate.connection.password" value="pwd"/> <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/> <property name="hibernate.show_sql" value="true"/> </properties> </persistence-unit> </persistence> ``` Do anyone have a idea what am i missing?

Original source

Related problems