2

私のドメインクラスは次のようになります:

class UserEvent { 
    User user
    Event event
    boolean isAttending
}

生成されたデータベース テーブルの外観には、次の列があります。

[ID , EVENT_ID, USER_ID , IS_ATTENDING ]

Event オブジェクトと User オブジェクト (user_id) の id のみがあります。User オブジェクトをロードせずに、このデータのみで新しい UserEvent オブジェクトを作成したい場合、次のようになります。

def userEvent = new UserEvent(user:['id':user_id],isAttending: true, event: event)

私は多くのことを試しましたが、解決策が見つかりませんでした。関連するオブジェクトのIDのみを含むコントローラーのパラメーターで同様の方法で行われるため、間違いなく可能だと思います。

 def userEvent= new UserEvent(params)

解決策を見つけるのを楽しみにしています。ありがとうございました。

4

1 に答える 1

5

「Userオブジェクトをロードせずに」と言うと、次のことができます。

def userEvent = new UserEvent(user:User.load(user_id), isAttending: true, event: event)

とは異なりgetloadメソッドはデータベースにヒットしません。id代わりに、非プロパティに最初にアクセスしたときにのみデータベースからデータをフェッチするプロキシオブジェクトを作成します。

于 2012-07-26T11:45:22.357 に答える