如果我们创建一个与用户ID相对应的列ID,那么为什么我们不把它放在变量id附近而不是id的getter?我在这里得到了答案 - Where to put hibernate annotations?。
但是,因为我的书把它放在了getter附近,所以看起来某个类需要通过getter访问这个对象来序列化/持久化到数据库。什么是这个类,它是如何执行持久性的?我是否将其方法称为持久性?
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
@Entity
public class User {
private Long id;
private String password;
@Id
@GeneratedValue
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
答案 0 :(得分:1)
Hibernate将使用反射来查找类上要读取的相应方法或字段。这就是Hibernate能够读取私有字段的原因。
执行此反射的代码从session.save(Object object)调用。