HibernateCriteriaBuilderGrails

HibernateCriteriaBuilderGrails,hibernate,grails,Hibernate,Grails,我有一个域名 Author{ String name String AuthorId hasMany = [books:Book] } 及 我能得到的唯一输入是AuthorId。使用此值,如何使用HibernetCriteriaBuildereq(propertyName,propertyValue) 谢谢你 在回答问题之前,先检查几个要点:- 1. idid默认情况下绑定到域类,您可能不需要AuthorId 2.圣杯是按惯例的。您希望使用authorId而不是authorI

我有一个域名

Author{
   String name
   String AuthorId
   hasMany = [books:Book]
}

我能得到的唯一输入是AuthorId。使用此值,如何使用HibernetCriteriaBuilder
eq(propertyName,propertyValue)


谢谢你

在回答问题之前,先检查几个要点:-
1.
id
id默认情况下绑定到域类,您可能不需要
AuthorId

2.圣杯是按惯例的。您希望使用
authorId
而不是
authorId
,以避免出现错误状态

如果您已经完成了,那么现在您将对grails中的
标准有了基本的了解。除此之外,
标准
也可用于
关联

在您的用例中,您可以执行以下操作:- 如果您想从
作者那里获得所有
书籍

def books = Author.createCriteria().get{
      eq('AuthorId', authorId)
}.books
但这是一个漫长的过程,确实很容易做到

def books=Author.findByAuthorId(authorId)?.books

为什么我们需要一个标准

Grails方法简单得多:
def books=Author.get(id)?.books

在标准中,这变成:

def books = Author.createCriteria().get{
          idEq("abc123") //'abc123' is your authorId
    }.books
def books = Author.createCriteria().get{
          idEq("abc123") //'abc123' is your authorId
    }.books