版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
一 DeptRepository
package org.fkit.oa.identity.repository;
import java.util.List;
import java.util.Map;
import org.fkit.oa.identity.domain.Dept;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
public interface DeptRepository extends JpaRepository<Dept, Long>{
// select dept0_.id as col_0_0_, dept0_.name as col_1_0_ from oa_id_dept dept0_
@Query("select new Map(p.id as code , p.name as name) from Dept p")
public List<Map<String, Object>> findDepts();
}
二 UserRepository
package org.fkit.oa.identity.repository;
import java.util.List;
import org.fkit.oa.identity.domain.User;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
public interface UserRepository extends JpaRepository<User, String> , JpaSpecificationExecutor<User>{
// select user0_.user_id as col_0_0_ from oa_id_user user0_ where user0_.user_id not in
// (select user1_.user_id from oa_id_user user1_ inner join oa_id_user_role roles2_ on user1_.user_id=roles2_.user_id inner join oa_id_role role3_ on roles2_.role_id=role3_.id where role3_.id=?)
@Query("select u.userId from User u where u.userId not in(select u.userId from User u inner join u.roles r where r.id = ?1)")
List<String> getRolesUsers(Long id);
@Query("select u.userId from User u inner join u.roles r where r.id = ?1")
List<String> findRoleUsers(Long id);
}
三 JobRepository
package org.fkit.oa.identity.repository;
import java.util.List;
import java.util.Map;
import org.fkit.oa.identity.domain.Job;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
public interface JobRepository extends JpaRepository<Job, String>{
@Query("select new Map(j.code as code ,j.name as name) from Job j")
public List<Map<String, Object>> findJobs() throws Exception ;
}
四 RoleRepository
package org.fkit.oa.identity.repository;
import org.fkit.oa.identity.domain.Role;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
public interface RoleRepository extends JpaRepository<Role, Long> , JpaSpecificationExecutor<Role>{
}
五 ModuleRepository
package org.fkit.oa.identity.repository;
import java.util.List;
import org.fkit.oa.identity.domain.Module;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
public interface ModuleRepository extends JpaRepository<Module, String> , JpaSpecificationExecutor<Module>{
@Modifying
@Query("delete Module m where m.code like ?1")
public void setCode(String code) ;
// select module0_.code as code1_2_, module0_.create_date as create_d2_2_, module0_.creater as creater7_2_,
// module0_.modifier as modifier8_2_, module0_.modify_date as modify_d3_2_, module0_.name as name4_2_, module0_.remark as remark5_2_,
// module0_.url as url6_2_ from oa_id_module module0_ where (module0_.code like ?) and length(module0_.code)=16 limit ?
@Query("select m from Module m where m.code like :parentCode and length(m.code) = :sonCodeLen")
public List<Module> findModules(@Param("parentCode")String parentCode, @Param("sonCodeLen")int sonCodeLen);
// select max(module0_.code) as col_0_0_ from oa_id_module module0_ where (module0_.code like ?) and length(module0_.code)=?
@Query("select Max(m.code) from Module m where m.code like :parentCode and length(m.code) = :sonCodeLen ")
public String findUniqueEntity(@Param("parentCode")String parentCode, @Param("sonCodeLen")int sonCodeLen);
}
六 PopedomRepository
package org.fkit.oa.identity.repository;
import java.util.List;
import org.fkit.oa.identity.domain.Popedom;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
public interface PopedomRepository extends JpaRepository<Popedom, Long>{
@Query("select p.opera.code from Popedom p where p.role.id = :id and p.module.code = :parentCode")
public List<String> findByIdAndParentCode(@Param("id")long id, @Param("parentCode")String parentCode);
@Modifying
@Query("delete Popedom p where p.role.id = :id and p.module.code = :parentCode")
public void setByIdAndParentCode(@Param("id")long id, @Param("parentCode")String parentCode);
@Query("select distinct p.module.code from Popedom p where "
+ "p.role.id in(select r.id from Role r "
+ "inner join r.users u where u.userId = ?1 ) "
+ "order by p.module.code asc")
public List<String> getUserPopedomModuleCodes(String userId);
@Query("select distinct p.opera.code from Popedom p "
+ "where p.role.id in(select r.id from Role r "
+ "inner join r.users u where u.userId = ?1 ) order by p.opera.code asc")
public List<String> getUserPopedomOperasCodes(String userId);
}