ТАБЛИЦА_А
- ID
- СОРТИРОВАТЬ
ТАБЛИЦА_B
- ID
Существует таблица REF с использованием этих таблиц, связанных с ManyToMany.
ТАБЛИЦА_ССЫЛКА
- A_ID
- B_ID
Я получаю данные, используя B.getAs()
Я хочу получить поле As OrderBy TABLE_A.SORT. Для этого я пытаюсь добавить OrderBy, однако он не может получить доступ к полю ORDER относительно B или A.
Вот почему я думаю, что если я также могу присоединить поле SORT к таблице REF, я могу использовать параметр @OrderBy(clause="ORDER") в карте отношений B.
Но в течение нескольких часов я не мог найти никаких решений.
Вот коды, которые я использую для отображения:
ТАБЛИЦА_А:
@ManyToMany(fetch=FetchType.EAGER, targetEntity = Role.class, cascade={CascadeType.MERGE, CascadeType.PERSIST})
@Fetch(FetchMode.SUBSELECT)
@JoinTable(name = "NC_ADMIN_ROLE_PAGE_XREF", joinColumns =
@JoinColumn(name = "PAGE_ID", referencedColumnName = "ID"),
inverseJoinColumns = @JoinColumn(name = "ROLE_ID", referencedColumnName = "ID", nullable = true))
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region="ncAdminElements")
@BatchSize(size = 50)
private List<Role> allRoles = new ArrayList<Role>(10);
ТАБЛИЦА_Б:
@Column(name = "NAME")
private String name;
@ManyToMany(fetch=FetchType.EAGER, targetEntity = Page.class, cascade={CascadeType.MERGE, CascadeType.PERSIST})
@Fetch(FetchMode.SUBSELECT)
@JoinTable(name = "NC_ADMIN_ROLE_PAGE_XREF", joinColumns = @JoinColumn(name = "ROLE_ID", referencedColumnName = "ID"),
inverseJoinColumns = @JoinColumn(name = "PAGE_ID", referencedColumnName = "ID", nullable = true))
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region="ncAdminElements")
@BatchSize(size = 50)
private List<Page> allPages = new ArrayList<Page>(10);
Что я точно хочу, TABLE_B.getAllPages(), упорядоченный TABLE_A.DISPLAY_ORDER
Мне подойдет любой хорошо сделанный источник про MAPPING RELATIONS в hibernate для чайников.