我记得在JPA或hibernate中有一个注释,告诉hibernate使用getId / setId方法而不是property(我们注释属性)。如果没有此设置,则getId会导致命中数据库并填充该对象的所有字段,这不是我想要的。有人知道该注释是什么吗?
例:
public void Project { @Id //Other annotation forcing hibernate to use property get/settter public Long id; } public Ticket { @ManyToOne(lazy=true) public Project project; }
因此,当id已在hibernate项目代理对象中时,ticket.getProject.getId()导致命中数据库以获取项目。该批注将解决我记得的问题。
谢谢,院长
您需要告诉Hibernate使用属性访问而不是字段访问来访问ID:
@Id @Access(AccessType.PROPERTY) private Long id;
您真的不应该公开您的字段。