Hibernate使用枚举加入列

时间:2017-03-29 12:14:34

标签: java hibernate join enums

我有以下设置

watch

然后,我有以下Java代码:

table: table1
| id | name |
|  1 | test |

table: table2
| id | table1_id | value |
| 1  |    1      | ENUM1 |
| 2  |    1      | ENUM2 |

但是,当我尝试运行我的Spring启动应用程序时,我收到以下错误:

引起:org.hibernate.AnnotationException:使用@OneToMany或@ManyToMany定位未映射的类:$ {package} .Table1.enumValues

你知道我该做什么吗?

1 个答案:

答案 0 :(得分:1)

@Enumerated表示TheEnum对象是否存储为数据库中的int或字符串。

您希望将集合enumValues映射到表TABLE2。使用此代码:

@ElementCollection(targetClass = TheEnum.class)
@JoinTable(name = "TABLE2", joinColumns = @JoinColumn(name = "table1_id"))
@Column(name = "enumValues", nullable = false)
@Enumerated(EnumType.STRING)
Set<TheEnum> enumValues;