如何将hibernate注释放在字段上,但始终具有属性访问权限?

时间:2013-02-16 22:02:51

标签: hibernate hibernate-annotations

我在问,因为我想为getters / 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)”:-(

1 个答案:

答案 0 :(得分:0)

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

2)您可以使用@Access annotation设置用于课程的访问类型。