JPA Hibernate:如何防止连接检索?

时间:2010-01-13 14:54:49

标签: java hibernate jpa ejb-3.0

假设我有以下对象(每个对象一个表)具有以下关系: A - > B - > C - > d

如果我findById是A的一个实例,则返回所有B,C和D,这不是我想要的。这是否可以强制Hibernate只返回A(或只是它的原始属性)?

我知道我可以写"SELECT a.x, a.y, a.z, ... FROM A"然后手动将对象的结果列表放在A中,但这有点及时,因为我应该手动填充所有属性。我还检查了所有Hibernate query hints,但没有任何相关内容。

穆赫辛

3 个答案:

答案 0 :(得分:2)

从A a中选择一个?

另外,你是如何绘制你的关系的? lazy =“proxy”和fetch =“join”?

答案 1 :(得分:2)

如果您有一个A的构造函数,它填充除了您不想加入的字段之外的所有字段,您可以这样选择:

SELECT NEW A(a.x, a.y, a.z) FROM A a

答案 2 :(得分:1)

您可以在映射中指定fetch =“select”和lazy =“true”。特别是如果你的关系 - >列表。