jub*_*ubi 5 grails groovy hibernate
我认为,我遇到的问题是Hibernate中的一个错误(已经跟踪过 - https://hibernate.onjira.com/browse/HHH-879).
我的问题是 - 是否有一种解决方法,使用grails条件查询多次连接表?
SQL将是直截了当的:
SELECT s FROM Store AS s
INNER JOIN s.Products AS prod1
INNER JOIN s.Products AS prod2
WHERE
prod1.Type = 'Shoes'
AND
prod2.Type = 'Shirts'
Run Code Online (Sandbox Code Playgroud)
当我在grails标准查询中使用"createAlias"时(一个用于prod1,一个用于prod2),我得到以下错误:
org.hibernate.QueryException:重复的关联路径:studyTags ...
一个可能的方法是,使用OR(一个JOIN和WHERE prod.Type ='Shoes'OR'Birts')进行查询,然后过滤结果集.此解决方案的问题在于,如果我为条件查询指定了限制(最大结果),则实际结果(在过滤之后)可能具有比指定的更少的条目.
任何帮助,将不胜感激.
谢谢.
PS:我的真实代码,我遇到这个问题非常复杂.为了解决这个问题,我在商店和产品中使用了这个例子...我认为查询看起来像
Store.withCriteria{
createAlias('products', 'prod1')
createAlias('products', 'prod2')
and{
eq('prod1.Type', 'Shoes')
eq('prod2.Type', 'Shirts')
}
}
Run Code Online (Sandbox Code Playgroud)
gka*_*mal -3
您是否尝试过此操作 - 我认为这将返回包含“鞋子”和“衬衫”类型产品的所有商店
Store.withCriteria{
createAlias('products', 'prod')
and{
eq('prod.Type', 'Shoes')
eq('prod.Type', 'Shirts')
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2652 次 |
| 最近记录: |