【发布时间】:2019-01-10 15:20:21
【问题描述】:
我在一个 Grails 项目中有三个领域类:
class Conversation {
static hasMany = [members: ConversationMember]
}
class ConversationMember {
User user
static belongsTo = [conversation: Conversation]
}
class User {
String name
}
我想构建一个 Hibernate 标准,允许我在给定两个用户的情况下返回包含引用这两个用户的 ConversationMembers 的所有对话。
也就是说,如果我有与 Josh 和 Jordyn 的对话 A,以及 Josh 和 Sam 之间的对话 B,以及 Josh、Jordyn 和 Sam 之间的对话 C,那么给定 Josh 和 Jordyn 的这个条件应该返回对话 A 和 C。
我尝试了以下方法,但它们似乎不起作用:
List<Conversation> conversations = Conversation.createCriteria().list() {
and {
members {
ne('user', currentUser)
}
members {
ne('user', conversationMemberToSearch)
}
}
}
List<Conversation> conversations = Conversation.createCriteria().list() {
not {
or {
members {
ne('user', currentUser)
}
members {
ne('user', conversationMemberToSearch)
}
}
}
}
如果不使用sqlRestriction 做某事,我似乎无法找到实现此目的的方法。有什么想法吗?
【问题讨论】:
标签: hibernate grails hql grails-orm