我正在尝试做这样的事情,但使用@One-To-Many 而不是@ElementCollection。
public class Book {
...
@ElementCollection
Set<String> tags;
...
}
这将创建两个表,一个用于 Book,另一个用于带有 (BookID, Tag) 的标签,除了我不能将 Criteria 与 @ElementCollection 一起使用这一事实之外,它工作正常。
所以我改变了它并为标签制作了一个包装类:
public class Book {
...
@OneToMany(...)
Set<BookTag> tags;
...
}
public class BookTag {
...
String tag;
...
}
问题是使用 @OneToMany 注释休眠创建 3 个表:一个用于书籍,一个用于标签,一个用于连接书籍和标签。这个解决方案工作得很好,但我想要 2 个表而不是 3 个,因为 Tag 类只包含一个字符串。
有什么方法可以使用 @OneToMany 并像使用 @ElementCollection 一样让休眠创建 2 个表?