Hibernate - 为什么在getter之前放一个列名而不是变量?

时间:2013-04-17 02:05:04

标签: java hibernate jpa

如果我们创建一个与用户ID相对应的列ID,那么为什么我们不把它放在变量id附近而不是i​​d的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;
  }
}

1 个答案:

答案 0 :(得分:1)

Hibernate将使用反射来查找类上要读取的相应方法或字段。这就是Hibernate能够读取私有字段的原因。

执行此反射的代码从session.save(Object object)调用。