Я пытаюсь сделать что-то подобное, но использую @One-To-Many вместо @ElementCollection.
public class Book {
...
@ElementCollection
Set<String> tags;
...
}
Это создает две таблицы, одну для книги и одну для тегов с (BookID, тег), которые отлично работают, за исключением того факта, что я не могу использовать критерии с @ElementCollection.
Поэтому я изменил его и сделал класс-оболочку для тегов:
public class Book {
...
@OneToMany(...)
Set<BookTag> tags;
...
}
public class BookTag {
...
String tag;
...
}
Проблема в том, что использование аннотации @OneToMany в спящем режиме создает 3 таблицы: одну для книг, одну для тегов и одну для объединения книг и тегов. Это решение отлично работает, но я хотел бы иметь 2 таблицы вместо 3, поскольку класс Tag содержит только строку.
Есть ли способ использовать @OneToMany и заставить hibernate создавать 2 таблицы, как это делается с @ElementCollection?