我正在尝试使用hibernate将一组枚举存储到数据库中。
枚举类似于
public enum SomeEnum {
ITEM,
ITEM2,
}
我有一个像这样的Hibernate模型实体
@Entity
public class TableObject implements BaseObject {
private Long id;
private Set<SomeEnum> someEnumSet;
@Column(name = "TABLE_COLUMN", nullable = true, insertable = true, updatable = true)
@ElementCollection
public Set<SomeEnum> getSectionSet() {
return sectionSet;
}
public void setSectionSet(Set<SomeEnum> sectionSet) {
this.sectionSet = sectionSet;
}
}
我不认为@ElementCollection注释是正确的。 'TABLE_COLUMN'列在DB中的类型为CLOB。 (Oracle)的
谢谢, 亚历克斯。
答案 0 :(得分:7)
尝试添加@Enumerated注释:
@Entity
public class TableObject implements BaseObject {
private Long id;
private Set<SomeEnum> someEnumSet;
@Column(name = "TABLE_COLUMN", nullable = true, insertable = true, updatable = true)
@ElementCollection
@Enumerated(EnumType.STRING)
public Set<SomeEnum> getSectionSet() {
return sectionSet;
}
public void setSectionSet(Set<SomeEnum> sectionSet) {
this.sectionSet = sectionSet;
}
}
它应该让hibernate将你的enume存储为一个字符串(enumes names)