表中有SET (https://dev.mysql.com/doc/refman/5.7/en/set.html)类型字段:SET('A','B')。和枚举:
public enum Foo {
A, B
}所以我想把这个字段映射到Set<Foo>
@Entity
public class Bar {
...
@Column(name="foos")
private Set<Foo> foos;
...
}或者,至少我想知道使用Hibernate读取MySQL文件集的任何方法。
发布于 2017-09-06 06:56:47
有趣的问题!不幸的是,hibernate无法处理特定于数据库的数据类型。(至少我并不是不知道,所以请随时纠正我:)
您可以像String一样简单地处理它,并在getter中解析它:
@Entity
class Bar {
...
@Column(name = "foos")
private String foos;
public Set<Foo> getFoos() {
return (null == foos) ?
Collections.emptySet() :
Arrays.stream(foos.split(",")).map(Foo::valueOf).collect(Collectors.toSet());
}
...
}我承认,这并不是ORM/Hibernate--做事的方式,但它做的非常得体。
https://stackoverflow.com/questions/46058371
复制相似问题