我当前的Web开发工具是Spring 3,我之前使用过Hibernate,在访问注释和实体以及会话对象之后,我实际上对它非常熟悉.但是,这是我第一次需要从头开始进行实际设置.
当前,我有一个用于JDBCTemplate的数据源,并且想将其重用于Hibernate.
不幸的是,我越了解Hibernate,就越困惑.配置它的方式有很多,自一些教程以来,情况已经发生了很大变化.最令人困惑的是,有时会使用persistence.xml文件,有时会使用休眠配置XML文件.
然后有会话工厂,但也有实体管理器工厂.有人可以摘录其中的一些信息,所以我面前还有一条清晰的路.
我唯一真正的要求是我可以在Hibernate中使用批注.我也想支持交易.
我知道这个问题有些含糊,但这是因为我一直无法真正找到一个可靠的“教程化”解决方案,该解决方案与我信任的Spring 3无关.
Currently I have a datasource that I have used for JDBCTemplate,and I want to reuse that for Hibernate.
没问题.我只是提到通过Hibernate和JDBC访问相同的表将需要一些预防措施.
(…) Most confusing is that sometimes a persistence.xml file is used,sometimes a hibernate config XML file.
hibernate.cfg.xml是Hibernate本机配置文件. persistence.xml是JPA(标准化Java Persistence API)配置文件.如果您决定采用JPA方式(这是我的建议),则通常仅使用persistence.xml.而且,如果您使用Spring,无论如何大多数配置实际上都将存储在Spring配置文件中.
Then there are session factories,but then there are also entity manager factories. Could someone please distill some of this information so I have a bit more of a clear path ahead of me.
与上述相同的故事. SessionFactory(和Session)是Hibernate本地API中的类,而EntityManagerFactory和EntityManager则是JPA的“对应部分”.如果您采用JPA方式,则将处理EntityManagerFactory和EntityManager.
My only real requirements are that I can use the annotations with Hibernate. I’d like to have support for transactions too.
如前所述,我的建议是使用标准化的JPA API(仅在严格要求时才使用Hibernate专有扩展).对于事务,请使用Spring.
文档的12.6. JPA部分涵盖了配置Spring所需的所有内容(我建议使用将与数据源一起提供的LocalContainerEntityManagerFactoryBean
).
对于数据访问层(DAO),请使用JpaTemplate
and JpaDaoSupport
类或使用注入的EntityManagerFactory或EntityManager实现DAOs based on plain JPA(我个人使用后一种方法).
所有这些对Spring 2.5文档的引用在Spring 3.0中仍然有效.以防万一,这是一个不太旧的tutorial,可以帮助您入门.
也可以看看
> Similarity and difference between JPA and Hibernate
> Difference Hibernate 3.5 / JPA 2.0