2

Application クラスまたはモデル内のモデルにアクセスしようとすると、次のエラーがスローされます。モデルを作成して永続化できます。しかし、アクセスしようとすると、問題が発生します。

実行例外

[InvalidPropertyException: Invalid property 'id' of bean class [models.CandidateToSalesforce]: No property 'id' found]
In [...]/app/views/syncedRecords.scala.html at line 11.

7   <h3>Results</h3>
8   <ul>
9       @for(r <- records) {
10          <li>
11              @r    [[ this is the line]]
12          </li>
13      }
14  </ul>
15}

これは、以下に示すようにゲッターを追加することで修正できます。

@Id
public Long id;

// NOTE: play framework was bugging out without this method even though it's supposed to be automatic
public Long getId() {
    return id;
}

大したことではありませんが、これは間違っていませんか?ドキュメントには、「Play はゲッター/セッターを自動的に生成するように設計されており、実行時に利用できることを期待するライブラリとの互換性を確保しています」と書かれています。

他の方法で私を悩ませる既知の構成の問題がありますか?

4

1 に答える 1

2

toString()モデルに独自のメソッドを記述できます。

public String toString(){
     return this.id.toString();
}

ただし、ie の代わりに実際の文字列を返す方がおそらく良い考えです。

return this.name+" "+this.somethingElse;

次にthis is my record: @r、テンプレートで使用すると、toString()リターンがレンダリングされます。

idカスタムゲッターを書くことなく、次の方法で取得できます:(@r.idまたはr.idコントローラーで)

于 2012-05-14T20:06:44.873 に答える