使用JPA映射类时,为什么有人应该在getter或setter上添加注释?
主题说明了一切……到目前为止,人们在getter和/或setter上声明注解没有任何优势。对我而言,这仅具有将注释分布在类上的缺点,这会使类更加不可读。
将注释放在字段上可以明显减少需要帮助时要发布的代码量。不过,这只是一个很小的优势。但是在方法上添加注释对我没有用。
回答:
在方法上添加注释会强制JPA通过方法访问属性。当对象的内部状态与数据库模式不同时,这才有意义:
@Entitypublic class Employee {
private String firstName;
private String lastName;
@Column(name = "EMP_NAME") // Due to legacy database schema
public String getName() {
return fisrtName + " " + lastName;
}
public void setName(String name) {
...
}
... Getters and setters for firstName and lastName with @Transient ...
}
在JPA 2.0中,您可以使用以下命令在细粒度级别上指定访问类型@Access
:
@Entity @Access(AccessType.FIELD)public class Employee {
@Access(AccessType.PROPERTY) @Column(name = "EMP_NAME")
public String getName() { ... }
... other properties have field access ...
}
以上是 使用JPA映射类时,为什么有人应该在getter或setter上添加注释? 的全部内容, 来源链接: utcz.com/qa/413021.html