Why should anybody put annotations on the getters or setters when using JPA to map the classes?(在使用 JPA 映射类时,为什么有人要在 getter 或 setter 上添加注释?)
问题描述
主题说明了一切......到目前为止,我认为人们在 getter 和/或 setter 上声明注释没有任何优势.对我来说,这只是将注释分散到类中的缺点,这会使类更不可读.
Subject says it all... I see no advantage of people declaring annotations on the getters and/or setters so far. For me this only has the disadvantage of spreading the annotations over the class, which can make the class more unreadable.
在字段上添加注释明显减少了需要帮助时发布的代码量.不过,这只是一个很小的优势.但是在方法上添加注释对我来说毫无用处.
Putting the annotations on the fields clearly reduces the amount of code to post when needing help. This is just a tiny advantage though. But putting annotations on methods would serve no purpose to me.
推荐答案
在方法上添加注释会强制 JPA 通过方法访问属性.当对象的内部状态与数据库模式不同时,这是有意义的:
Putting annotations on methods forces JPA to access properties via methods. It makes sense when internal state of your object differs from the database schema:
@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 在细粒度级别指定访问类型:
In JPA 2.0 you can specify access type at fine-grained level with @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 上添加注释?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在使用 JPA 映射类时,为什么有人要在 getter 或 setter 上添加注释?
基础教程推荐
- 使用堆栈算法进行括号/括号匹配 2022-01-01
- RabbitMQ:消息保持“未确认"; 2022-01-01
- 如何对 Java Hashmap 中的值求和 2022-01-01
- Struts2 URL 无法访问 2022-01-01
- 无法复制:“比较方法违反了它的一般约定!" 2022-01-01
- REST Web 服务返回 415 - 不支持的媒体类型 2022-01-01
- 存储 20 位数字的数据类型 2022-01-01
- 修改 void 函数的输入参数,然后读取 2022-01-01
- 问题http://apache.org/xml/features/xinclude测试日志4j 2 2022-01-01
- Spring AOP错误无法懒惰地为此建议构建thisJoinPoin 2022-09-13
