0

典型的な Spring Security ドメイン クラス レイアウト (Person、Authority、結合テーブル PersonAuthority) があります。次のクエリを作成しましたが、特定の権限 (最後の 'if' ブロック) しか持たない人を取得するための適切な基準を作成する方法がわかりません。

public static def query(Map params=[:]){
    def criteria = Person.createCriteria();
    def rows = criteria.list(max:params.max,offset:params.offset){
    order(params.column?:"id",params.order?:"asc")
        if(params.id){
            idEq (params.id as Long);
        }        
        if(params.username){
            ilike "username","%"+params.username+"%"    
        }
        if(params.email){
            ilike "email","%"+params.email+"%"
        }
        if(params.accountLocked){
            eq "accountLocked",Boolean.valueOf(params.accountLocked)
        }
        if(params.enabled){
            eq "enabled",Boolean.valueOf(params.enabled)
        }
        if(params.passwordExpired){
            eq "passwordExpired",Boolean.valueOf(params.passwordExpired)
        }
        if(params.authorities){
            inList "authority",params.authorities;
        }
    }
    return rows;
}

このクエリでは、org.hibernate.QueryException: could not resolve property: authority

4

1 に答える 1

1

デフォルトの Spring Security オプションとクラスから何も変更していない場合は、authorityまたはauthoritiesフィールドがないと思います。

getAuthorities()ただし、権限のセットを返すメソッドを Person クラスに呼び出す必要があります。

于 2012-10-09T02:20:35.210 に答える