Hibernate标准运行时类
这是我的层次结构:Hibernate标准运行时类,hibernate,criteria,Hibernate,Criteria,这是我的层次结构: // Table a class A {} // Table(" b class B extends A {} // Table my_class class MyClass { A a; } 我想从数据库中检索所有与B相关但与a无关的MyClass对象 B是一个连接的子类(表a的id扩展) 我的想法是: Criteria criteria = session.createCriteria(MyClass.class); criteria.add(Restri
// Table a
class A {}
// Table(" b
class B extends A {}
// Table my_class
class MyClass {
A a;
}
我想从数据库中检索所有与B
相关但与a
无关的MyClass
对象
B
是一个连接的子类
(表a
的id扩展)
我的想法是:
Criteria criteria = session.createCriteria(MyClass.class);
criteria.add(Restrictions.eq("a.class", B.class);
但它输出一个错误:
could not resolve property: a.class of a.b.MyClass
这是我能说的最简单的方式。请记住,查询要复杂一些
问候
Udo.我通常编写一个DetachedCriteria,选择所有B并筛选MyClass,其中a在所有B中:
DetachedCriteria allBs = DetachedCriteria
.forClass(B.class)
.setProjection( Projections.property("id") );
Criteria criteria = session.createCriteria(MyClass.class)
.add(Subqueries.In("a", allBs);
(可能会有错误,我不是java程序员。)
创建如下内容:
select ...
from MyClass
where A in (select id from A inner join B on ...)
+我喜欢这个主意。我知道您不是java开发人员,但它说我不能将字符串转换为整数。有什么想法吗?谢谢你的时间,A应该是A。非常感谢。