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

2024-01-12

主题说明了一切...到目前为止,我认为人们在 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 ...
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么在使用 JPA 映射类时应该在 getter 或 setter 上添加注释? 的相关文章

随机推荐