我有以下实体。在这里,我想获取除phoneNumber之外的所有数据。最好的解决办法是什么?如果我能用注解来做就好了。
public class Employee {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@Column(name = "employee_name")
private String name;
@Column(name = "gender")
private char gender;
@Column(name = "date_of_birth")
private String dob;
@Column(name = "skills")
private String[] skills;
@Column(name = "phone_number")
private String phoneNumber;
//getter setter
}
4条答案
按热度按时间brtdzjyr1#
要想知道什么是最好的方法,你必须说出你为什么要这样做,你想达到什么目的。有很多选择:
x6yk4ghg2#
请在您的领域使用
@Transient
。如果它是任何类的子类,那么在类级别上请使用@Embedded
。如果没有,那么你需要阅读这篇文章,因为这总是从Hibernate中延迟获取,第19章。提高性能:
惰性属性获取:当访问示例变量时,获取属性或单值关联。这种方法需要构建时字节码插装,而且很少需要。
mi7gmzs63#
您可以在phoneNumber上使用
@Basic(fetch = FetchType.LAZY)
,但不读取它或设置为null以防止任何读取gwo2fgha4#
你可以使用
@Column(insertable = true, updatable = false)
,我不确定我们是否可以在使用实体获取时忽略它。您可以使用JPA Projections来实现您的需求此外,
@JsonIgnore
可能是有用的。它用于告诉Jackson忽略Java对象的某个属性,但