質問

でも私は、以下の一対多の関係:

Site has many Users
User belongs to one Site

私は、このような関係

class Site {
    static hasMany = [users:User]
    ...
}

class User {
    static belongsTo = [site:Site]
    int number
    String username
    ...
}

基本的には変更したいユーザのユーザ名、特定のユーザの特定のサイトのユーザオブジェクトです。ピックアップしました。サイトならびに新しいユーザー名でも機能しようとするルックアップに対応する接続を使用基準をビルダー:

class funcClass {
    User func(Site site, int number, String newUserName) {
        def results = User.createCriteria()
        results.list = {
             eq('number', number)
             site {
                 idEq(site.id)
             }
        }
        ...
        def user = results[0]
        ...
        return user
    }
}

または、例外と同様:

groovy.lang.MissingMethodException: No signature of method: static com.myapp.Site.call() is application for arguemtns types: ( funcClass$_closure )

こんなことが可能なので基準をビルダー?を実現できるクエリのotherway、私は基準からのサイトへのユーザーがいをすることによって、すべてのユーザーのサイトを見つけ合ったのか更新してしまいました。私はしっかりとして使用HQLクエリー?

役に立ちましたか?

解決

これがあるべき

def criteria = User.createCriteria()
def users = criteria.list {
   eq('site', site)
   eq('number', number)
   maxResults(1)
}
def user = users[0]

しかし、あなたは、単純な動的なファインダーでこれを行うことができます:

def user = User.findBySiteAndNumber(site, number)
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top