我正在努力解决一个似乎太容易的问题:
设置是 Hibernate 3 中具有多对一关系的两个实体:
@Entity
class M {
private N n;
@ManyToOne(fetch = FetchType.LAZY)
public N getN() { return n; }
public void setN(N n) { this.n = n; }
}
@Entity
class N {
private List<M> ms = new ArrayList<M>();
@OneToMany(mappedBy="n")
public List<M> getMs() { return ms; }
public void setMs(List<M> ms) { this.ms = ms; }
}
很容易。在我的应用程序中,我有一个有或没有的M
s列表。N
此列表是 a 的输入,h:dataTable
它根据 FK 是否为空来显示不同的列内容。但是当我测试m.getN() != null
这会导致休眠加载N
。我怎样才能避免这种情况?
编辑:这实际上是我的一个错误,正如 JBNizet 在评论中指出的那样。为了至少使这对某人有用并保持上面的布局,我将问题改写为“如何在不获取完整实体的情况下获取依赖 Hibernate 实体的外键列值?” 正如 Aaron Digulla 所建议的那样。
编辑 2:原来新问题是这个问题的重复:当我只访问外键 id 时,如何防止 Hibernate 获取加入的实体?- 所以,近距离投票?