hibernate中的annotations是什么意思

2025-03-23 06:33:01
推荐回答(2个)
回答1:

呵呵。
不知道你想说的“标准”的hibernate代表什么,先听听我说的。
hibernate最开始是想解决java类和关系型数据库的映射问题的,主要是实现数据库操作问题的自动化,结果效果很好,越来越火爆。后来,java的标准委员会从中大受启发,要把这个思想放到java ee的标准里面,就把hibernate的创始人给请去设计jpa标准。java提供的只是一个标准而已,有许多软件厂商去实现,当然肯定是hibernate实现的最好了。
annotation是java后来增加的一种技术,通过注解就可以让代码实现很多功能。例如在类名上加上@table(name="t_teacher")的注解,相应的框架就会自动在数据库里面给你建好对应的表(当然还要配置文件和库支持)。hibernate-annotations-3.3.0.GA.zip是hibernate提供的annotation,一般不用,用java ee自带的就可以了,命名空间是javax.persistence.annotation(不知道有没有打错哦)。
至于hibernate-entitymanager,是hibernate提供ejb3实体管理的jpa实现,使用EJB3持久化的hibernate支持功能。

一般情况下使用hibernate是不需要这两个包的。

回答2:

annotation就是注解的意思,很多配置的信息不用写配置文件里,直接以编码的方式写在代码里,例:
原来是配置文件里需要写实体类与数据库表之间的映射,以面以注解的方式
@Entity
@Table(name="t_user")
public class User {
private int id;
private String username;
private String password;
private String email;
private Date birthday;
private Gender gender;
private Org org;
private List roles = new ArrayList();
@ManyToMany
@JoinTable(name="t_user_role" ,joinColumns={@JoinColumn(name="u_id")},inverseJoinColumns={@JoinColumn(name="r_id")})
public List getRoles() {
return roles;
}
public void setRoles(List roles) {
this.roles = roles;
}
public void setId(int id) {
this.id = id;
}
@Id
@GeneratedValue
public int getId() {
return id;
}
public void setUsername(String username) {
this.username = username;
}
public String getUsername() {
return username;
}
public void setPassword(String password) {
this.password = password;
}
public String getPassword() {
return password;
}
public void setEmail(String email) {
this.email = email;
}
public String getEmail() {
return email;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
@JSON(format="yyyy-MM-dd")
public Date getBirthday() {
return birthday;
}
public void setGender(Gender gender) {
this.gender = gender;
}
@Enumerated(EnumType.STRING)
public Gender getGender() {
return gender;
}
public void setOrg(Org org) {
this.org = org;
}
@ManyToOne
@JoinColumn(name="org_id")

public Org getOrg() {
return org;
}
}
以上就是annotation强大的地方
不过就是修改没有配置文件的方式方便