0

正確に 1 行のテーブルを作成する必要があります。

たとえばBook、プロパティを持つドメインクラスがありますYear

class Book {

  Integer year

  static mapping = {
     ...
  }

}

ドメインクラスには何を書く必要がありますか?

4

2 に答える 2

0

残念ながら、これを達成するために使用する GORM イベントbeforeInsertでは、挿入を拒否することはできません (Grails 2.2.2 以降)。beforeUpdateしますが、この場合は役に立ちません。

頭に浮かぶ2つの解決策があります。

  • サービス メソッドを使用して、挿入するかどうかの決定を行います。ただし、別のクラスがドメイン クラスを直接使用している場合、自動的に挿入が拒否されることはありません。

  • テーブルに既にデータがあるかどうかをチェックするカスタム Hibernate PreInsertEventListenerを作成します。

Burt Beckwith は、2011 年の gr8Conf セッションで、効果的に読み取り専用のドメイン クラスを作成するためのカスタム Hibernate イベント リスナーの使用について概説しました。

于 2013-06-19T18:13:13.580 に答える