使用JPA映射类时,为什么有人应该在getter或setter上添加注释?

主题说明了一切……到目前为止,人们在getter和/或setter上声明注解没有任何优势。对我而言,这仅具有将注释分布在类上的缺点,这会使类更加不可读。

将注释放在字段上可以明显减少需要帮助时要发布的代码量。不过,这只是一个很小的优势。但是在方法上添加注释对我没有用。

回答:

在方法上添加注释会强制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 ...

}

以上是 使用JPA映射类时,为什么有人应该在getter或setter上添加注释? 的全部内容, 来源链接: utcz.com/qa/413021.html

回到顶部