2017-06-05 12 views
0

これはgrails 2.5.6コードです。私は継承を使用するドメインクラスを持っています。サブクラスの1つに、変数valuesに格納されている文字列のリストが含まれています。 .save()を呼び出すと、ドメインクラス自体が正しい継承動作で正しく保存されますが、値は保存されません。ドメインクラスは次のとおりです:Grailsドメインクラスの文字列リストは永続しません

abstract class Condition implements ICondition, IMarshaler { 
    String field; 
    static mapping = { 
     tablePerHierarchy false; 
    } 
    ... 
} 

class ListCondition extends Condition { 
    static hasMany = [values: String]; 
    List<String> values; 
    ... 
} 

新しいリスト条件を保存して、データベースから再度取得しようとすると、値がないことがわかります。

ListCondition condition = new ListCondition(field: 'someField', values: ['test', 'otherTest']) 
condition.save() 
println ListCondition.getAll()[0].values.size() // Prints 0 
+0

try condition.save(failOnError:true)これは、エラーがある場合にスタックトレースを提供します。 – chim

答えて

0

同様の問題が発生しました。 condition.save(flush: true)を試してみるか、トランザクション内で永続性ロジックを実行してみてください。これは違いを生み出すようであり、とにかくベストプラクティスとみなされます。

関連する問題