使用 @Parameter 的休眠注释不起作用



我正在使用Hibernate自定义用户类型将枚举映射到表varchar/char。我正在使用此处(https://community.jboss.org/wiki/Java5StringValuedEnumUserType)的自定义用户类型代码。我正在尝试按照注释进行映射,但它不起作用。

@Transient
@Type(type = "data.model.base.StringValuedEnumType", parameters = {
        @Parameter(name = "enumClass", value = "data.common.TypeEnum"),
        @Parameter(name = "identifierMethod", value = "dbCode") })
private TypeEnum typeEnum;

类型枚举代码:

public enum TypeEnum implements StringValuedEnum {
OFF("OFF", "O"),
ON("ON, "O"),
private String dbCode;
private String desc;
TypeEnum(String desc, String dbCode) {
    this.desc=desc;
    this.dbCode = dbCode;
}
@Override
public String dbCode() {
    return dbCode;
}
public String desc() {
    return desc;
}
}

我相信我在注释中做错了什么,但我无法弄清楚它是什么。有人知道吗?

我已经找到了。我通过删除@Transient并添加映射@Column来更新注释。我还更新了代码以处理传递的名称并删除了 defaultValue。

@Column(name = "TYP_CD", length = 1)
@Type(type = "data.model.base.StringValuedEnumType", parameters = {
    @Parameter(name = "enumClass", value = "data.common.TypeEnum")})
private TypeEnum typeEnum;

相关内容

  • 没有找到相关文章

最新更新