我有以下域类:
class AccountRecord {
List owners // owner of this account
}
和
class IndividualRecord {
String uniqueId
String secondaryId
List accounts // accounts owned by this individual
}
owners List
类中的AccountRecord
通过存储包含每个所有者的uniqueId和secondaryId对的地图来存储该帐户的所有所有者。因此,所有者列表可能如下所示:
[
[uniqueId: 1, secondaryId 2] // owner 1
[uniqueId: 2, secondaryId 3] // owner 2
]
让我们说我想使用GORM查找其所有者列表包含地图的所有AccountRecord
,以便地图包含给定的IndividualRecord的uniqueId和secondaryId。基本上,给定个人,查找个人拥有的所有帐户。目前我正在这样做,但它不起作用(由于某些原因,它也归还不归个人所有):
def accountsOwnedByUser = AccountRecord.where {[uniqueId: someOwner.uniqueId, secondaryId: someOwner.secondaryId] in owners}.list()
有什么建议吗?
答案 0 :(得分:1)
如果您没有使用标准gorm M:N关系的特殊原因,您可以像这样实施:
class AccountRecord {
static hasMany = [owners: IndividualRecord]
}
class IndividualRecord {
String uniqueId
String secundaryId
static belongsTo = AccountRecord
static hasMany = [accounts: AccountRecord]
}
基本上,给定个人,找到个人拥有的所有帐户
这可以通过使用关联来轻松实现:myIndividual.accounts
。