在方法上添加注释会强制JPA通过方法访问属性。当对象的内部状态与数据库模式不同时,这才有意义:
@Entity
public 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 ...
}