正確に 1 行のテーブルを作成する必要があります。
たとえばBook
、プロパティを持つドメインクラスがありますYear
。
class Book {
Integer year
static mapping = {
...
}
}
ドメインクラスには何を書く必要がありますか?
正確に 1 行のテーブルを作成する必要があります。
たとえばBook
、プロパティを持つドメインクラスがありますYear
。
class Book {
Integer year
static mapping = {
...
}
}
ドメインクラスには何を書く必要がありますか?
残念ながら、これを達成するために使用する GORM イベントbeforeInsert
では、挿入を拒否することはできません (Grails 2.2.2 以降)。beforeUpdate
しますが、この場合は役に立ちません。
頭に浮かぶ2つの解決策があります。
サービス メソッドを使用して、挿入するかどうかの決定を行います。ただし、別のクラスがドメイン クラスを直接使用している場合、自動的に挿入が拒否されることはありません。
テーブルに既にデータがあるかどうかをチェックするカスタム Hibernate PreInsertEventListenerを作成します。
Burt Beckwith は、2011 年の gr8Conf セッションで、効果的に読み取り専用のドメイン クラスを作成するためのカスタム Hibernate イベント リスナーの使用について概説しました。