Hibernate query filter on collection
我要执行以下查询:
1 | from Item i where i.categoryItems.catalogId = :catId |
但是会产生以下异常:非法尝试取消引用集合
所以我用Google搜索了一下,发现了这个Hibernate论坛帖子https://forum.hibernate.org/viewtopic.php?p=2349920,建议我执行以下操作:
1 | from Item i, IN (i.categoryItems) WHERE i.catalogId = :catId |
这种作品,但是有一个问题:
它返回一个带有Item对象和CategoryItem对象的Object数组。我只对单个Item对象(列表)
感兴趣
我对"商品"的映射:
1 2 3 4 5 6 7 8 9 10 11 12 13 | <hibernate-mapping package="be.xx.xx.xx.xx.domain" default-access="field"> <class name="Item" table="ITEM"> <id name="articleId" column="article_id" type="long"> <generator class="assigned" /> </id> ... ... <set name="categoryItems" table="CATEGORY_ITEM"> <key column="item_id" /> <one-to-many class="be.xx.xx.xx.xx.domain.CategoryItem" /> </set> </class> </hibernate-mapping> |
有人有什么主意吗?
谢谢
尝试:
1 | SELECT i FROM Item i inner join i.categoryItems cat WHERE cat.id = :catID |
说明:
您尝试的导航: