У меня есть система меню, где MenuTabs - верхний уровень, они содержат Меню , а Меню содержит MenuItem s.
Каждый уровеньУ элемента есть список пользователей Роль s, для которых он должен быть видим.
Мне нужно создать запрос к базе данных, чтобы выбрать MenuTabs, который содержит только видимые меню с видимыми элементами меню для текущего пользователя.Можно ли это сделать с помощью SQL-запроса?
Я использую JPA и MySql, но любой SQL-запрос будет полезен.
В качестве входных данных у меня есть список ролей для текущего пользователяи мне нужно построить правильную систему меню для него / нее.Таким образом, пользователь будет видеть только разрешенные MenuTabs / Меню / MenuItems
Классы:
class MenuTab {
List<Menu> menu;
List<Role> userRoles;
}
class Menu {
List<MenuItem> menuItems;
List<Role> userRoles;
}
class MenuItem {
List<Role> userRoles;
}
class User {
List<Role> userRoles;
}
Таблицы:
menutab menutab_menu menutab_role
id menutabId menutabId
menuId roleId
menu menu_menuitem menu_role
id menuId menuId
menuitemId roleId
menuitem menuitem_role
id menuitemId
roleId
role
id
user user_role
id userId
roleId