0

如果我们创建一个对应于用户 id 的列 Id,那么为什么我们不把它放在变量 id 附近而不是 id 的 getter 附近呢?我在这里得到了答案 -在哪里放置休眠注释?.

但是,因为我的书把它放在 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;
  }
}
4

1 回答 1

1

Hibernate 将使用反射在您的类中找到要读取的适当方法或字段。这就是 Hibernate 能够读取私有字段的原因。

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

于 2013-04-17T02:51:03.450 回答