簡體   English   中英

How to configure hibernate to use Spring Data save and Session Factory with Criteria API in Spring Boot

[英]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或者如果您真的需要SessionEntityManager展開它

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM