0

我问是因为我想为 getter/setter 使用代码生成。

还因为我希望映射注释出现在类的顶部,我在其中声明字段。

我想知道这种方法是否正确:

@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 中添加了日志语句,但它们从未被调用过。另一方面,当我将 @Access(AccessType.PROPERTY) 也添加到“testString”字段时,调用了 getter 和 setter 方法。

所以目前看来我唯一的选择是在每个字段前面写“@Access(AccessType.PROPERTY)”:-(

4

1 回答 1

0

1) 属性访问不是持久化实体的正确方法。您持久化状态,状态存储在字段中。

2)您可以使用@Access注释来设置要用于类的访问类型。

于 2013-02-16T22:12:02.027 回答