Hibernate:setter和getter使用不同的名称作为字段

时间:2014-03-11 00:33:03

标签: hibernate

假设我有String属性fullName,但我想将它表示为两个单独的字符串,如下例所示。

是否可以设置Hibernate以便将全名存储在单个列中并使用访问器方法(getFullNamesetFullName)来执行此操作?

问题是我想要声明 - 只是为了让Hibernate满意 - 一个不必要的字符串字段fullName将不会被使用,因为这会降低代码的清晰度

String lastName;
String firstName;
public String getFullName() {
     return firstName+" "+lastName;
}
public void setFullName(String n) {
     firstName=extractFirstName(n);
     lastName=extractLastName(n);
}

2 个答案:

答案 0 :(得分:1)

您可以使用transient注释来使Hibernate忽略方法:

@Transient
public String getFullName() {
     return firstName+" "+lastName;
}

@Transient
public void setFullName(String n) {
     firstName=extractFirstName(n);
     lastName=extractLastName(n);
}

答案 1 :(得分:1)

是的,您可以注释getFullname方法以将其存储到数据库中的列。

检查此链接:

Hibernate Annotations - Which is better, field or property access?