And*_*ili 7 java spring hibernate jpa spring-mvc
我是Spring世界的新手,我正在研究如何集成Hibernate和Spring框架
我有一些关于Hibernate注释和JPA注释之间关系的数据.
我有类似下面的实体类:
package org.andrea.myexample.HibernateOnSpring.entity;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
/* Classe che rappresenta un oggetto da persistere sul database
*
*/
@Entity
@Table(name="person")
public class Person {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int pid;
private String firstname;
private String lastname;
public int getPid() {
return pid;
}
public void setPid(int pid) {
this.pid = pid;
}
public String getFirstname() {
return firstname;
}
public void setFirstname(String firstname) {
this.firstname = firstname;
}
public String getLastname() {
return lastname;
}
public void setLastname(String lastname) {
this.lastname = lastname;
}
}
Run Code Online (Sandbox Code Playgroud)
我不理解的是Hibernate注释和JPA注释之间的关系是什么
注释@ Entity,@ Table(name ="person"),@ GenealValue(strategy = GenerationType.AUTO)和前面示例中的id是简单的JPA注释或Hibernate的特定注释?
如果我使用JPA注释将数据持久化到数据库,那么什么给了我Hibernate?
TNX
安德里亚
SJu*_*n76 22
答案很复杂.
正如其他人所指出的,JPA是一个Hibernate提供实现的规范.您使用JPA注释/ API,并且通过在类路径中包含Hibernate jar,Hibernate将提供实际的逻辑.
此外,Hibernate提供了与JPA无关的API.你也可以使用它; 主要区别是:
如果您使用JPA API,您可能稍后通过其他JPA实现(vg EclipseLink)替换Hibernate,您不需要更改您的程序
如果您直接使用Hibernate API,则没有实现替代方案.优点可能是您可以使用Hibernate已定义但不属于JPA标准的功能,这些功能可能对您有用.
无论如何,你应该完全避免将JPA与Hibernate API混合使用.作为初学者,我建议你坚持使用JPA.
要确保您使用的是JPA,请仅包含类/注释java.persistence.不要包含任何内容org.hibernate(或者,如果您只想使用Hibernate,请执行相反的操作).
Hibernate是JPA规范的实现.JPA只是一个规范,一组注释和接口.您需要JPA的实现来使用它,而Hibernate就是其中之一.就像使用JDBC一样,您需要一个数据库驱动程序.
注释的包是javax.persistence,因此它们是JPA注释.Hibernate注释在包中org.hibernate.xxx.
| 归档时间: |
|
| 查看次数: |
7595 次 |
| 最近记录: |