有没有办法做这样的事情。我有一个叫做人的实体。
@Entity
@Table(name = "PERSON")
public class Person {
@Column(name = "NAME", length = 128, columnDefinition = "VARCHAR2(128)")
String name;
@Column(name = "NATIONALITY", length = 128, columnDefinition = "VARCHAR2(128)")
String nationality;
}
'NATIONALITY' 列具有数值 - 每个数字都是一个国家/地区的代码。我想将“国籍”字段映射到我的自定义枚举并创建一些方法转换代码<->国家。
@Entity
@Table(name = "PERSON")
public class Person {
@Column(name = "NAME", length = 128, columnDefinition = "VARCHAR2(128)")
String name;
@Column(name = "NATIONALITY", length = 128, columnDefinition = "VARCHAR2(128)")
Nationality nationality;
}
enum Nationality {
USA, Brazil, Germany; // etc.
}
public static Nationality codeToNationality(String code);
有没有这样的休眠方法?我无法修改列定义 - 数据库是只读的。
我想要实现的第二件事是排除任何未解决国籍代码的实体。codeToNationality(...) == null 的实体对休眠是不可见的。
我的模型(个人、国籍)只是一个例子。
谢谢你的帮助!