gpt4 book ai didi

java - EntityManager 的 SessionFactory 抛出异常

转载 作者:搜寻专家 更新时间:2023-10-31 20:17:34 24 4
gpt4 key购买 nike

我正在尝试使用以下行从 JPA 的 EntityManager 获取 Hibernate 的 SessionFactory:

@PersistenceContext
EntityManager manager;

public SessionFactory getSessionFactory(){
sessionFactory = manager.unwrap(SessionFactory.class);
}

但是它抛出这个异常:

org.springframework.orm.jpa.JpaSystemException: Hibernate cannot unwrap interface org.hibernate.SessionFactory; nested exception is javax.persistence.PersistenceException: Hibernate cannot unwrap interface org.hibernate.SessionFactory
at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:418)
...

Caused by: javax.persistence.PersistenceException: Hibernate cannot unwrap interface org.hibernate.SessionFactory
at org.hibernate.jpa.spi.AbstractEntityManagerImpl.unwrap(AbstractEntityManagerImpl.java:1489)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
...

这可能是什么原因?

提前致谢

最佳答案

您不能使用unwrap 来获取 session 工厂,您可以使用它来获取 session 。
如果需要,您可以从 session 中获取工厂:

public SessionFactory getSessionFactory(){
Session session = manager.unwrap(Session.class);
sessionFactory = session.getSessionFactory();
}

关于java - EntityManager 的 SessionFactory 抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41619642/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com