好的,我的问题与以下问题非常相似:How can I use Hibernate Criteria's to query nested tables?
但他们提供的解决方案并不适用于我,即使它看起来完全相同。我的做法有何不同?
这是我的具体问题:
我有3张桌子:
COURSE
-----------------------------------------
uid
name
course_catalog_uid
COURSE_CATALOG
-----------------------------------------
uid
name
product_type_uid
PRODUCT_TYPE
-----------------------------------------
uid
name
我有1或2个product_type_uid,我需要获得COURSE的列表,其中(向下钻取嵌套表格)PRODUCT_TYPE.uid =我提供的2个初始值中的任何一个。
我现在谷歌搜索了3个小时,没有找到任何作品。我真的很感激我能得到的任何帮助。我筋疲力尽,几乎是COB。我将在明天上午首先检查/评论所有回复。
同样以防万一: 我正在开发一个在WAS上运行的Java EE Web应用程序(使用java 1.7)
编辑:关于我链接到的相关问题,如果我只提供一个product_type_uid,他们的解决方案甚至都不起作用。这是我的代码:
Criteria crit = session.createCriteria(Course.class);
List<Course> list = crit.createAlias("course_catalog", "cclog")
.createAlias("cclog.product_type_uid", "ptypeuid",
Criteria.INNER_JOIN, Restrictions.eq("ptypeuid", ptype.getUid()).list();
运行时会产生以下错误:
[12/9/14 7:53:47:294 SAST] 000002fd LocalTranCoor E WLTC0017E: Resources rolled back due to setRollbackOnly() being called.
[12/9/14 7:53:47:294 SAST] 000002fd webapp E com.ibm.ws.webcontainer.webapp.WebApp logServletError SRVE0293E: [Servlet Error]-[/operations/operationshome.jsp]: org.hibernate.QueryException: could not resolve property: course_catalog of: com.companyname.model.Course
at org.hibernate.persister.entity.AbstractPropertyMapping.propertyException(AbstractPropertyMapping.java:83)
所以“org.hibernate.QueryException:无法解析属性:course_catalog”
我猜这意味着我的课程表中没有course_catalog字段(没有) 但是如何在我的查询中链接不同的表?
答案 0 :(得分:0)
您是否将某些POJO映射到这些表格? 我会做的是: