自动生成插入语句,以使用Java Reflection将枚举值存储到数据库

时间:2014-02-05 20:40:43

标签: java database hibernate enums

我在我的应用程序中使用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

有人知道更好的方法吗?

0 个答案:

没有答案