我的entityManager persist()從序列獲取id並將其放到我的Image對象中,但Image對象本身沒有顯示在數據庫中。 EntityManager.flush()給出一個錯誤,所以我不能以這種方式提交。這是我的代碼。EntityManager persist()不保存任何東西到數據庫
@Repository
public class ImageDaoImpl extends BaseDao implements ImageDao {
@PersistenceContext
protected EntityManager entityManager;
@Override
@Transactional
public void create(Image image) {
JpaTemplate jpaTemplate = getJpaTemplate(entityManager);
jpaTemplate.persist(image);
}
@Repository
public class BaseDao {
private JpaTemplate jpaTemplate;
public JpaTemplate getJpaTemplate(EntityManager entityManager){
if(jpaTemplate == null)
jpaTemplate = new JpaTemplate(entityManager);
return jpaTemplate;
}
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
p:dataSource-ref="dataSource">
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="showSql" value="true" />
<property name="generateDdl" value="true" />
<property name="databasePlatform" value="org.hibernate.dialect.PostgreSQLDialect" />
</bean>
</property>
<property name="persistenceUnitName" value="sample"></property>
</bean>
<!-- DataSource Setup -->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="org.postgresql.Driver" />
<property name="url" value="jdbc:postgresql://localhost:5432/imageCapture" />
<property name="username" value="myusername" />
<property name="password" value="mypassword" />
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />
你正在使用哪個JPA/spring版本? – Premraj 2011-03-20 19:17:10
Spring 3.05 @Falcon – ivar 2011-03-20 19:35:28
我對JPA版本感興趣..擺脫JpaTemplate ..不會解決你的問題,但會很好 – Premraj 2011-03-20 20:06:32