1

ドメインオブジェクトにヘルパーメソッドを追加すると、コンパイル時に「xプロパティが見つかりません」というエラーが発生することがよくあります。これは、メソッド名、、、および最近でも発生するgetXようsetXですisX。避けるべき名前の形式のリストはありますか?Grailsが自動プロパティと混同しないように、これらのメソッドに注釈を付けたり、ラベルを付けたりする方法はありますか?

4

3 に答える 3

7

Grailsはプロパティを自動検出し、それらが永続的であると想定します。Groovyのパブリックフィールドは、内部でゲッターとセッターを作成するため、ゲッターは永続フィールドに関連付けられていると見なされます。

ただし、「get」または「is」で始まり、永続フィールドのゲッターではないヘルパーメソッドが必要な場合は、2つのオプションがあります。transients1つは、リストを使用することです。http: //grails.org/doc/latest/ref/Domain%20Classes/transients.htmlを参照してください。

もう1つのオプションは、戻り値をとして宣言することですdef。タイプされていないため(defはObjectのエイリアスです)、Hibernateは使用するデータ型がわからないため、永続化できません。したがって、無視されます。

私の好みはtransientsリストです。なぜなら、それらが何をするのか、どのパラメータータイプを受け入れるのか、そして何を返すのかが明らかな自己文書化メソッドが欲しいからです。

于 2011-02-20T17:03:09.877 に答える
0

私は共通のリストを知りません-それはあまりにも多様です。コンベンションメソッドは、GroovyとGrailsのさまざまな部分で追加されています。

getter / setterではなく、宣言されたフィールドにアクセスするには、javaフィールドアクセス演算子を使用します。

于 2011-02-20T15:11:22.073 に答える
0

私があなたの問題を理解している限り、あなたは一時的なものを使うことができます!

static transients = ['feildName']
于 2012-02-23T10:34:10.420 に答える