Eli*_*kan 28 java orm hibernate
我正在使用Hibernate 3.1.1,特别是我正在使用HQL查询.
根据文档,Hibernate的查询是多态的:
像这样的查询:
from Cat as cat不仅返回实例Cat,而且返回子类的实例DomesticCat.
如何查询Cat的实例,而不查询其子类的实例?
我希望能够在不必明确提及每个子类的情况下完成它.
我知道以下选项,但发现它们并不令人满意:
Hibernate允许用户决定查询是否应该是多态的,这是有意义的,但我找不到这样的选项.
提前致谢!
Boz*_*zho 15
SELECT cat FROM Cat cat WHERE cat.class='cat'
Run Code Online (Sandbox Code Playgroud)
其中值'cat'是类的鉴别值Cat.
如果你正在使用TABLE_PER_CLASS,那么试试cat.class='Cat')(该类的名称)
这是不准确的鉴别列在where子句,因为这样的查询将失败(鉴别列仅适用于原生查询).
Eya*_*upu 11
JPA 2(Hibernate 3.5)增加了对非多态查询的支持,这与Hibernates .class属性非常相似(如上面的Bozho所述),但它不是特定于Hibernate的.这是使用TYPE运算符完成的.如在
Select b from Book b where TYPE(b) = Book
Run Code Online (Sandbox Code Playgroud)
你可以阅读更多有关在这里它在我的博客
的Eyal
| 归档时间: |
|
| 查看次数: |
14563 次 |
| 最近记录: |