【发布时间】:2016-07-12 20:10:57
【问题描述】:
我有 A、B 类
class A{
@Embedded
private B objB;
}
@Embeddable
class B{
Integer x;
Integer y;
float z;
}
现在我有一堆A类的objs集,我想查询数据库,让B类中包含相同x和y的行(z在这种情况下比较不重要)应该被选中,我该怎么做做到这一点?
这就像 SQL 中的“In”,但由于我是在比较嵌入式对象,我应该如何处理它?非常感谢!!
【问题讨论】:
-
你的问题是,如何查询
x和y具有相同值的所有A对象? -
A看起来不像是由 Hibernate 管理的实体。它缺少Entity注释和Id字段。A是实体还是纯 java 类?如果A是一个实体,可以试试条件查询session1.createCriteria(A.class, "a").add(Restrictions.and(Restrictions.eq("a.objB.x",1), Restrictions.eq("a.objB.y", 1))).list()或者hqlFROM A a where a.objB.x=:x and a.objB.y=:y").setParameter("x", 2).setParameter("y", 2).list()
标签: java hibernate hql hibernate-criteria