[英]Applying AND condition on one field grails domain
在Grails中,我有兩個具有多對多關系的領域類
class VisitingUser
{
String name
static hasMany = [visitedCountries:VisitedCountry]
static belongsTo = VisitedCountry
}
class VisitedCountry
{
String countryName
static hasmany=[users:VisitingUser]
}
我想要所有訪問過“印度”和“美國”兩個國家的用戶。
目前,我正在解決此問題,方法是獲取兩個visitorUsers列表,一個用於“印度”,另一個用於“美國”,然后將它們放在集合中。
我想要使用createCriteria或動態查找器的解決方案。
我認為使用條件查詢是不可能的,而使用動態查找程序絕對不可能。 這是HQL的解決方案:
VisitingUser.executeQuery('''
select distinct u from VisitingUser u where
u in (
select u from VisitingUser u join u.visitedCountries country where country.countryName = 'usa'
)
and u in (
select u from VisitingUser u join u.visitedCountries country where country.countryName = 'india'
)
''')
兩個不相關的事物- VisitedCountries
應該叫VisitedCountry
(雖然集名稱visitedCountries
是有道理的,因為這將有可能有多個元素),和的關系應該是多到很多。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.