MenuRepo.java 1.3 KB

1234567891011121314151617181920212223242526272829303132333435
  1. package com.izouma.nineth.repo;
  2. import com.izouma.nineth.domain.Menu;
  3. import com.izouma.nineth.dto.MenuDTO;
  4. import org.springframework.data.jpa.repository.JpaRepository;
  5. import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
  6. import org.springframework.data.jpa.repository.Modifying;
  7. import org.springframework.data.jpa.repository.Query;
  8. import javax.transaction.Transactional;
  9. import java.util.List;
  10. public interface MenuRepo extends JpaRepository<Menu, Long>, JpaSpecificationExecutor<Menu> {
  11. @Query(nativeQuery = true, value = "SELECT ifnull(max(sort + 1),1) FROM menu")
  12. int nextSort();
  13. @Query("select m.category from Menu m group by m.category")
  14. List<String> categories();
  15. @Transactional
  16. @Modifying
  17. @Query(value = "delete from menu_authority where authority = ?1", nativeQuery = true)
  18. int clearAuthority(String name);
  19. @Transactional
  20. @Modifying
  21. @Query(value = "insert into menu_authority value (?2, ?1)", nativeQuery = true)
  22. int saveAuthority(String name, Long id);
  23. @Query(value = "select * " +
  24. "from menu " +
  25. " join menu_authority on menu.id = menu_authority.menu_id " +
  26. "where authority in ?1 and active = 1 group by id", nativeQuery = true)
  27. List<MenuDTO> authorityMenus(Iterable<String> authority);
  28. }