Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate 实体类和枚举查找类之间的一对多关系_Hibernate_Jpa_Enums - Fatal编程技术网

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

Hibernate 实体类和枚举查找类之间的一对多关系,hibernate,jpa,enums,Hibernate,Jpa,Enums,我需要使用带有额外属性的联接表在实体和枚举查找表之间创建多对多关系。我知道如何写出两个实体表之间的这种关系,但我不认为当另一个表是枚举查找表时可以使用相同的技术 枚举表: public enum SAMPLE implements StringValuedEnum { A("1123"), B("231"), C("311"), D("4001"); private String dbCode; SAMPLE(String dbCode) { this.setDbCode(db

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

枚举表:

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;
}
}
我相信这不是一个新问题。有什么建议吗?

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

@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>();
@ElementCollection(targetClass=Category.class,fetch=FetchType.EAGER)
@CollectionTable(name=“ENT\u CATG”,joinColumns=@JoinColumn(name=“ENT\u SID”))
@列(name=“CATG_CD”,nullable=false)
@Type(Type=“com.sample.data.common.IntValuedEnumType”,parameters={@Parameter(name=“enumClass”,value=“com.sample.data.model.types.Category”))
私有集类别=新HashSet();
前一个问题有助于:


什么是枚举查找表?它是映射到枚举值的常规表吗?是。编辑问题。