簡體   English   中英

在一個字段grails域上應用AND條件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM