信息管理系统——实现Repository持久层

一 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{
    // 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> 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 , JpaSpecificationExecutor{
    // 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 getRolesUsers(Long id);
    
    @Query("select u.userId from User u inner join u.roles r where r.id = ?1")
    List 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{
    
    @Query("select new Map(j.code as code ,j.name as name) from Job j")
    public List> 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 , JpaSpecificationExecutor{


}

五 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 , JpaSpecificationExecutor{


    @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 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{
    
    @Query("select p.opera.code from Popedom p where p.role.id = :id and p.module.code = :parentCode")
    public List 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 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 getUserPopedomOperasCodes(String userId);
    
    
}

 

你可能感兴趣的:(Spring,Boot)