0

ゲッター/セッターのコード生成を使いたいのでお願いしています。

また、フィールドを宣言するクラスの先頭にマッピング アノテーションを表示することを好むためです。

このアプローチが正しいかどうか疑問に思います:

@Entity
@Table(name = "test")
// @Access(AccessType.PROPERTY) // cannot use this, because hibernate complains that no 
public class Test implements Serializable
{
  @Id
  // I hope this results in property access for all of the other
  // properties as well, but I am not sure how to confirm this...
  @Access(AccessType.PROPERTY) 
  @Column(name = "id")
  private long                id         = 0;

  @Column(name = "test_string")
  private String              testString = null;

  ...

更新: 上記の例をテストしたところ、フィールド アクセスを使用して「testString」プロパティにアクセスしているようです。getter/setter にログ ステートメントを追加しましたが、呼び出されませんでした。一方、「testString」フィールドにも @Access(AccessType.PROPERTY) を追加すると、getter メソッドと setter メソッドが呼び出されました。

したがって、現時点では、すべてのフィールドの前に「@Access(AccessType.PROPERTY)」を記述することが唯一のオプションのようです:-(

4

1 に答える 1

0

1) プロパティへのアクセスは、エンティティを永続化する正しい方法ではありません。状態を保持すると、状態がフィールドに格納されます。

2)@Accessアノテーションを使用して、クラスに使用するアクセス タイプを設定できます。

于 2013-02-16T22:12:02.027 に答える