[英]How to configure hibernate to use Spring Data save and Session Factory with Criteria API in Spring Boot
我想使用 Spring 数据(保存方法,使用带有默认名称的@Transactional - “transactionManager”)和我自己配置的 Session 工厂来使用它,例如,在标准 ZDB974238714CA8A1434A7CE1DFZ 中。 所以我配置了 Session Factory、jpaVendorAdapter、DataSource、PlatformTransactionManager bean。
PlatformTransactionManager 看起来像:
@Bean(name = "transactionManager")
public PlatformTransactionManager hibernateTransactionManager() {
HibernateTransactionManager transactionManager = new HibernateTransactionManager();
// JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setSessionFactory(sessionFactory().getObject());
// transactionManager.setDataSource(this.dataSource());
return transactionManager;
}
因此,此配置不允许 Spring 数据保存方法正常工作。 当我执行它时它不会抛出任何异常,但它也不会插入数据,只会更新表结构。 另一方面,如果我使用
JpaTransactionManager transactionManager = new JpaTransactionManager();
而不是 HibernateTransactionManager 它工作正常,但使用我的自动装配 Session 工厂的其他方法给我一个例外:“javax.persistence.TransactionRequiredException:没有事务正在进行中”
例如:
@Transactional
public List find() {
return this.getCSession().createNativeQuery("SELECT CAST(animals.rabbit.id as VARCHAR) AS id, name FROM animals.rabbit").getResultList();
}
所以,我对使用这两种方法很感兴趣。 我该如何修复它?!
如何使用JpaTransactionManager
并使用EntityManager
而不是 Hibernate Session
或者如果您真的需要Session
从EntityManager
展开它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.