EntityManagerFactory和SessionFactory之间的区别?

时间:2013-03-06 05:17:25

标签: hibernate jpa hibernate-mapping persistence.xml

我是Hibernate和JPA的新手。现在我使用EntityManagerFactory Instance来创建EntityManager然后我使用

将这个EntityManager解包到会话中
entityManager = entityManagerFactory.createEntityManager();
session = entityManager.unwrap(Session.class);

通过使用EntityManagerFacotry我们不需要创建Hibernateconfig.xml我们可以使用Persistence.xml.But我的问题是当我使用Peristenece.xml时我无法使用Hibernate Mapping文件来映射实体类

可以使用Hibernate Mapping文件来使用EntityManagerFactory映射实体类吗?

2 个答案:

答案 0 :(得分:1)

简短的回答是肯定的,您可以将hibernate.cfg.xml与JPA一起使用。在创建映射时假装您正在使用hibernate。但是,你为什么要使用Session?你不使用EntityManager#persist()吗?还是#createQuery()? (顺便说一句,EntityManager是JPA,Session是Hibernate)

答案 1 :(得分:1)

当你还想使用hibernate会话时,使用jpa有点奇怪。但对于你的问题,是的,你可以做到这一点。这是另一个问题:How to load a Hibernate 'xxx.hbm.cfg' file in a JPA 2.0 project?。还有一个标签,它可以导入hbm.xml文件。