gpt4 book ai didi

hibernate getId 正在加载对象,即使它是惰性的

转载 作者:行者123 更新时间:2023-12-03 14:15:46 26 4
gpt4 key购买 nike

我记得在 JPA 或 hibernate 中有一个注释告诉 hibernate 使用 getId/setId 方法而不是属性(我们注释我们的属性)。如果没有此设置,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;

你真的不应该公开你的领域。

关于hibernate getId 正在加载对象,即使它是惰性的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9250414/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com