实体类和枚举查找类之间的一对多关系

时间:2014-01-29 12:39:33

标签: hibernate jpa enums

我需要使用具有额外属性的连接表在实体和枚举查找表之间创建多对多关系。我知道如何在两个实体表之间编写这种关系,但我不认为当另一个表是枚举查找表时可以使用相同的技术。

枚举表:

public enum SAMPLE implements StringValuedEnum {
A("1123"), 
B("231"), 
C("311"), 
D("4001");

private String dbCode;

SAMPLE(String dbCode) {
    this.setDbCode(dbCode);
}

@Override
public String getDbCode() {
    return this.dbCode;
}

public void setDbCode(String dbCode) {
    this.dbCode = dbCode;
}

} 我相信这不是一个新问题。有什么建议吗?

1 个答案:

答案 0 :(得分:2)

我找到了解决方案。我使用的是自定义枚举类型。

@ElementCollection(targetClass = Category.class, fetch = FetchType.EAGER)
@CollectionTable(name = "ENT_CATG", joinColumns = @JoinColumn(name = "ENT_SID"))
@Column(name = "CATG_CD", nullable = false)
@Type(type = "com.sample.data.common.IntValuedEnumType", parameters = { @Parameter(name = "enumClass", value = "com.sample.data.model.types.Category") })
private Set<Category> categories = new HashSet<Category>();

上一个问题有帮助:

Mapping Set<enum> using @ElementCollection