我有我希望在我的Table实体类上使用的国家列表如下。
package com.danieladenew.webproject.enums;
public enum CountryEnum {
AMERICA("United States Of America"),
UK("United Kingdom"),
;
private String name;
CountryEnum(String s) {
}
@Override
public String ToString() {
}
}
@Entity
@Table
public class Exchange
{
@Column(name="COUNTRY OF ORIGIN")
@Enumerated(EnumType.STRING)
private CountryEnum countryofOrigin;
.
.
}
但是,我不明白我的身份如何: 使用AMERICA作为密钥 保存数据时选择美利坚合众国?
答案 0 :(得分:1)
基于此链接:
定义JPA用于访问country属性的getter / setter。请注意,我们已经将这些方法与getCountryOfOrigin / setCountryOfOrigin方法分开定义,因为它们接受并返回CountryEnum枚举。这些方法与提供者签订合同以返回字符串。我们还需要告诉提供者要使用的数据库列名,因为默认列命名规则在这种情况下不起作用。
@Access(AccessType.PROPERTY)
@Column(name="COUNTRY OF ORIGIN", length=32)
protected String getDBCountryOfOrigin() {
return countryofOrigin==null ? null : countryofOrigin.name;
}
protected void setDBCountryOfOrigin(String dbValue) {
countryofOrigin = CountryEnum.getName(dbValue);
}
您需要将此方法添加到枚举
public static CountryEnum getName(String prettyName) {
for (CountryEnum country : values()) {
if (country.name.equals(prettyName)) {
return country;
}
}
return null;
}