在EVERYBODY下面的问题
What's the difference between JPA and Hibernate?
告诉JPA是规范。没有Eclipselink或Hibernate
是抽象的东西JPA javax.persistence.sth对吗?
此外,我们可以使用像
这样的具体内容javax.persistence.EntityManager.persiste javax.persistence.EntityManager.delete /删除
修改
eclipselink和hibernate是否将自己的代码放入这些类中,这些类???
答案 0 :(得分:2)
JPA是一个规范,许多实现者提供遵循规范的实现。
因此,如果您使用JPA,那么您可以从一个或多个实现者中进行选择,它应该“即插即用”工作。换句话说,您不必更改代码,因为实现将执行规范所承诺的内容。
---至于JPA和Hibernate之间的区别---
JPA是一个规范,但Hibernate是一个实现。如果您针对JPA编写,则可以轻松地在兼容JPA的实现之间进行更改;但是,如果你反对Hibernate,要有效地改变你需要重写你的数据库访问代码。
请注意,Hibernate还提供了一些JPA兼容性,如果你只注意使用Hibernate的JPA兼容部分,你实际上是在用Hibernate编写JPA来提供实现。
有一个用于进行JPA开发的方法,可以很好地防止编写非JPA(特定于实现的)代码。
答案 1 :(得分:0)
JPA是JCP(Java Community Process)作为JSR(Java规范请求)发布的Java Persistence API。
这是一种规范;换句话说就像界面一样,没有实现包括。
对此规范感兴趣的每个供应商(实现者)都需要按照规范文档中的说法实现。
以下是示例JPA 2.0 spec