繁体   English   中英

Hibernate Native vs Hibernate JPA

[英]Hibernate Native vs Hibernate JPA

Hibernate网站说有一个原生的Hibernate API以及一个JPA的实现。 Native API和JPA实现之间有什么区别? 优点缺点?

我正在使用Spring MVC应用程序,使用Tomcat作为容器,使用MySQL进行持久化。 我过去分别使用Doctrine和Entity for PHP和.NET,使用代码优先方法。 我想有类似Java的东西。 我是Spring的新手,从未使用过Hibernate。 我的团队想使用ORM,而Hibernate似乎是最受欢迎的。 我们不确定Hibernate将如何锻炼,或者我们是否应该使用原生或JPA api。 该应用程序将是数据驱动,数据输入,报告等。

我已经读过,使用JPA可以更容易地切换到另一个JPA实现,虽然我不知道是否需要它。

JPA是通过面向对象的API访问关系数据库的标准。 Hibernate是此API的一个实现。 当你想使用JPA时,你需要一些供应商来实现它,Hibernate是一个不错的选择,但还有其他像EclipseLink。

Hibernate的存在时间比JPA长。 原生的旧API(JPA的模型)仍然存在,有时它提供的可能性比通过JPA暴露的更多(例如孤儿删除)。 如果您需要那些,您需要使用本机API。 使用JPA有其他优点,最重要的(在我看来)更多的开发人员知道它。 而你仍然可以通过配置使用一些Hibernate细节。

一般而言,IMO支付使用标准API(此处为JPA),并对要使用的实现做出经验丰富的决定。

大多数本地使用Hibernate的教程都很老 - 就像Hibernate 3一样,这是一个JPA之前的版本。 虽然有充分的理由使用它,但它们(IMO)通常不适用于普通观众。 所以如果你刚刚开始在这个领域学习,我建议从JPA开始。

关于异地资源的建议:有充分的理由,这里不是主题。 但是目前官方的Hibernate文档将是一个良好的开端,就像寻找至少Hibernate 4的动态一样。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM