0

コントローラーでドメイン クラスの一時的なインスタンスを使用しようとしています。一時的なインスタンスは、基本的に 2 つの永続的なインスタンスの相互積であり、永続化する必要はありません。ただし、まだ TransientObjectException が発生しています。便宜上、オブジェクトを少しだけインスタンス化し、永続化せずに破棄する方法はありませんか?

これは grails 2.2.0 です。ありがとう!

さて、いくつかのコードを追加します:

特に私が扱っているクラスは次のWarrantyとおりです。

class Warranty {

    // ...other fields...
    Client client

clientが唯一の必須フィールドです。Client同様に、クラスには外部Warrantyキーがあります。

class Client {

    // ...other fields...
    Warranty warranty

コントローラーで:

String name = params.name
if (name == null) { return }
Client client = Client.findByClientName(name as String)

// ...other stuff...

def warranty = new Warranty(client: client)
return // for testing purposes

...そしてそれは例外を発生させます!

4

2 に答える 2

1

私の推測では、クライアント インスタンスを変更したため、新しい保証を作成すると、保存されていないクライアントが参照されます。

client.discard()保証を作成する前に追加してみてください。

于 2013-08-14T19:45:07.337 に答える