Я сделал нечто подобное с файлами hbm, но до сих пор не нашел эквивалента с использованием аннотаций.То, что я хотел бы сделать, это создать ассоциацию через таблицу соединений, где таблица соединений содержит столбец заказа для ассоциации (извините за неправильную терминологию здесь).В самом простом случае таблицы могут выглядеть так:
Table: Menus
-----
menu_id
Table: Items
-----
item_id
Table: Menus_Items
----
menu_id
item_id
order_by
Если бы я не требовал, чтобы пункты меню были упорядочены (это столбец order_by), я мог бы сделать это без проблем;однако я хотел бы иметь возможность программно упорядочивать элементы в таблице Menus_Items либо в модульных тестах, либо в инструменте администратора.Так что для этого, я думаю, мне также понадобится класс MenuItems, верно?
Мой вопрос: какие аннотации необходимы для соответствующих классов, чтобы это произошло?Классы могут выглядеть примерно так (насколько я знаю):
public class Menu {
private List<MenuItem> items;
// ...
@OneToMany
@JoinTable(name = "Menus_Items",
joinColumns = @JoinColumn(name = "menu_id"),
inverseJoinColumns = @JoinColumn(name = "item_id"))
@Cascade(value = { CascadeType.ALL, CascadeType.DELETE_ORPHAN })
@IndexColumn(name = "order_by")
public List<MenuItem> getItems() { // ...
}
} // end class Menu
Правильно ли @IndexColumn?Программно, как мне указать порядок коллекции MenuItems?Что я могу делать не так?У меня есть ноющее чувство, что я упускаю что-то очевидное.
Любая помощь очень ценится.