MenuRepo.java 1.4 KB

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