grails - createCriteria 的域对象的集合属性上是否存在 'does not contains' 功能?

标签 grails hql createcriteria

我遇到类似于 this 的问题。但我想要一个不包含功能。

就像我有一个 Post 域一样。一个帖子有很多用户。 我想要使​​用 createCriteria 做的事情是这样的:

def c = Post.createCriteria()
def l = c.list (max: maxVar) {
    notContains("users", thisUser)
}

我尝试使用ne但没有运气。

def l = c.list (max: maxVar) {
    users {
        ne('id', thisUser.id)
    }
}

要明确的是,如何获取其用户字段(集合)不包含 thisUser 的所有帖子的列表?

最佳答案

您可以使用HQL来实现此目的

List<Post> posts = Post.executeQuery("select distinct p from Post p where :myUser not member of p.users", [myUser: user, max: maxVar])

关于grails - createCriteria 的域对象的集合属性上是否存在 'does not contains' 功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24180418/

相关文章:

grails - Grails中的URL映射前缀

具有Hasmany字符串的Grails/GORM条件查询

grails - Grails-在CreateCriteria中使用逻辑或

grails - GORM不会在两个类之间的一对多关系中创建表

grails - gson View 无法解析域类

grails - 在TagLibs中保持属性类的一致性

java - 如何访问java hibernate Manytomany映射表

java - 使用 Hibernate 查询数据库时出现语法错误

java - HQL WHERE 子句,其中条件位于哈希集或列表内

Grails:使用条件+投影的结果作为原始表的过滤器