开始体验到JPA的好处

阅读更多
本来想用OpenJPA来代替Hibernate做为系统的持久层解决方案的,试用了一段时间后发现OpenJPA的问题相当多,于是用了很长时间作出决定改回用Hibernate,没想到却用了很短的时间就完成了这项本以为会很艰苦的任务。

这还是得得益于JPA的规范,让不同的持久层技术有了统一的使用方式。

具体的过程简单到几乎没有什么可以描述。因为本来就有一部分是Hibernate实现的,所以只用新加入了hibernate-entitymanager.jar及依赖的Jar包,然后在persistence.xml中加入配置信息,这些配置信息也基本上都是从原来的hibernate.cfg.xml中Copy过来改了一下格式。最后,把
entityManagerFactory=Persistence.createEntityManagerFactory(“openjpa");

改成:
entityManagerFactory=Persistence.createEntityManagerFactory(“hibernate");

启动起应用,运行一下功能,大部分已经可以正常使用,一些因为实现不同而出现的小问题也多是代码上稍做变动即可。

不得不抱怨两句OpenJPA,而看看是谁在用OpenJPA来实现EJB的规范呢?很不幸,是BEA。难道这就是直到现在我们还不得不用着WebLogic8.1的原因?

注:又详细地测了一下,发现其实二者在例如Entity.refresh()这样的方法上对标准的理解和具体实现细节方面的还是有较大差异的,考虑到ORM技术的本身的复杂性,JPA尚任务道远。

你可能感兴趣的:(JPA,Hibernate,EJB,XML,ORM)