我有两个实体:“父母”& “子女”
Child映射在Parent中,如下所示:
代码:
<many-to-one name="child" class="org.demo.Child"
update="false" insert="false" embed-xml="false" node="chd/@id" >
<column name="CHILD_ID" precision="10" scale="0" not-null="true" />
</many-to-one>
和Child的枚举类型映射如下:
代码:
<property name="toyType">
<column name="TOY_TYPE" length="100" />
<type name="org.demo.type.LabelEnumType">
<param name="enum">org.demo.ToyType</param>
<param name="defaultLabel"></param>
</type>
</property>
在CHILD.TOY_TYPE列中映射为“字符串”
一切正常,但我不能这样做:
代码:
DetachedCriteria dc = DetachedCriteria.forClass(Parent.class);
dc.add(Restrictions.and(
Restrictions.eq("child.id", childId),
Restrictions.eq("child.toyType", ToyType.CAR)));
dc.setProjection(Projections.rowCount());
int count = DataAccessUtils.intResult(getHibernateTemplate().
findByCriteria(dc));
因为我得到了:
nested exception is org.hibernate.QueryException: could not resolve property:
child.toyType of: org.demo.Parent
所以它看起来无法解决:
parent->child->toyType
可能是因为ToyType没有自己的“实体”,但它是嵌入的。
有什么解决方法吗?我需要继续使用DetachedCriteria,因为它将在代码的其他位置“装饰”。 所以我想知道我是否可以使用DetachedCriteria来解决这个问题。
谢谢, 兰德