我在我的应用程序中使用Spring + JPA / Hibernate + Oracle。我在数据库中有一堆查找表,并且我在数据层有枚举。我需要自动生成sql语句,以便在它们各自的查找表中插入枚举值(如果它尚不存在)。
使用反射我能够枚举值并建立与数据库的连接并且插入不是问题。我的问题是数据库中的表名和列名与枚举类不同。
我正在考虑使用Map>处理查询的枚举类和查找表之间的映射,并将列名也放在那里。
代码:
public enum AddressType implements StringValuedEnum {
HOME("HOME", true),
WORK("WORK", true);
private String dbCode;
private Boolean active;
private AddressType(String dbCode) {
this.setDbCode(dbCode);
}
private AddressType(String dbCode, Boolean active){
this.setDbCode(dbCode);
this.setActive(active);
}
@Override
public String getDbCode() {
return this.dbCode;
}
public void setDbCode(String dbCode) {
this.dbCode = dbCode;
}
public Boolean getActive() {
return active;
}
public void setActive(Boolean active) {
this.active = active;
}
}
数据库中的地址类型: T_ADDR_TYP ADDR_TYP_NM ADDR_TYP_DESC ACTV_IND
有人知道更好的方法吗?