JPA通用策略生成器

环境:oracle数据库,spring+mybatis

1.Maven依赖

pom.xml

<!-- https://mvnrepository.com/artifact/org.eclipse.persistence/javax.persistence -->
<dependency>
    <groupId>org.eclipse.persistence</groupId>
    <artifactId>javax.persistence</artifactId>
    <version>2.1.0</version>
</dependency>

2.创建序列B_ROLE_ID_SEQ

3.实体

package com.jusfoun.socialgrid.admin.domain;

import javax.persistence.Column;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

import com.itmuch.core.entity.BaseEntity;

@Table(name = "B_ROLE")
public class Role extends BaseEntity {
    /**
     * id
     */
    @Id
    @Column(name = "ID")
    @GeneratedValue(strategy = GenerationType.IDENTITY, generator = "select B_ROLE_ID_SEQ.nextval from dual")
    private Long id;

    /**
     * 归属机构
     */
    @Column(name = "OFFICE_ID")
    private Long officeId;

    /**
     * 角色名称
     */
    @Column(name = "NAME")
    private String name;

    /**
     * 英文名称
     */
    @Column(name = "ENNAME")
    private String enname;

    /**
     * 角色类型
     */
    @Column(name = "ROLE_TYPE")
    private Short roleType;

    /**
     * 是否系统数据 0否 1是
     */
    @Column(name = "SYS_FLAG")
    private Short sysFlag;

    /**
     * 状态 0:可用 1:禁用
     */
    @Column(name = "STATUS")
    private Short status;

    @Column(name = "PARENT_ID")
    private Long parentId;
    
    private static final long serialVersionUID = 1L;

    /**
     * 获取id
     *
     * @return ID - id
     */
    @Override
    public Long getId() {
        return this.id;
    }

    /**
     * 设置id
     *
     * @param id id
     */
    @Override
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * 获取归属机构
     *
     * @return OFFICE_ID - 归属机构
     */
    public Long getOfficeId() {
        return this.officeId;
    }

    /**
     * 设置归属机构
     *
     * @param officeId 归属机构
     */
    public void setOfficeId(Long officeId) {
        this.officeId = officeId;
    }

    /**
     * 获取角色名称
     *
     * @return NAME - 角色名称
     */
    public String getName() {
        return this.name;
    }

    /**
     * 设置角色名称
     *
     * @param name 角色名称
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取英文名称
     *
     * @return ENNAME - 英文名称
     */
    public String getEnname() {
        return this.enname;
    }

    /**
     * 设置英文名称
     *
     * @param enname 英文名称
     */
    public void setEnname(String enname) {
        this.enname = enname;
    }

    /**
     * 获取角色类型
     *
     * @return ROLE_TYPE - 角色类型
     */
    public Short getRoleType() {
        return this.roleType;
    }

    /**
     * 设置角色类型
     *
     * @param roleType 角色类型
     */
    public void setRoleType(Short roleType) {
        this.roleType = roleType;
    }

    /**
     * 获取是否系统数据 0否 1是
     *
     * @return SYS_FLAG - 是否系统数据 0否 1是
     */
    public Short getSysFlag() {
        return this.sysFlag;
    }

    /**
     * 设置是否系统数据 0否 1是
     *
     * @param sysFlag 是否系统数据 0否 1是
     */
    public void setSysFlag(Short sysFlag) {
        this.sysFlag = sysFlag;
    }

    /**
     * 获取状态 0:可用 1:禁用
     *
     * @return STATUS - 状态 0:可用 1:禁用
     */
    public Short getStatus() {
        return this.status;
    }

    /**
     * 设置状态 0:可用 1:禁用
     *
     * @param status 状态 0:可用 1:禁用
     */
    public void setStatus(Short status) {
        this.status = status;
    }

	public Long getParentId() {
		return parentId;
	}

	public void setParentId(Long parentId) {
		this.parentId = parentId;
	}
    
}

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.jusfoun.socialgrid.admin.persistence.RoleMapper">
    <resultMap id="BaseResultMap" type="com.jusfoun.socialgrid.admin.domain.Role">
        <id column="ID" property="id" jdbcType="DECIMAL" />
        <result column="OFFICE_ID" property="officeId" jdbcType="DECIMAL" />
        <result column="NAME" property="name" jdbcType="VARCHAR" />
        <result column="ENNAME" property="enname" jdbcType="VARCHAR" />
        <result column="ROLE_TYPE" property="roleType" jdbcType="DECIMAL" />
        <result column="SYS_FLAG" property="sysFlag" jdbcType="DECIMAL" />
        <result column="STATUS" property="status" jdbcType="DECIMAL" />
        <result column="PARENT_ID" property="parentId" jdbcType="DECIMAL" />
    </resultMap>
    <sql id="Base_Column_List">
        ID, OFFICE_ID, NAME, ENNAME, ROLE_TYPE, SYS_FLAG, STATUS,PARENT_ID
    </sql>

    <insert id="insertRoleMenu">
        insert into b_role_menu
        (role_id, menu_id)
        <foreach close=")" collection="menuIds" item="item" index="index" open="(" separator="union">
            select
            #{roleId},#{item}
            from dual
        </foreach>
    </insert>

    <delete id="deleteRoleMenuById" parameterType="java.lang.Long">
        delete from b_role_menu
        where role_id = #{roleId}
    </delete>

    <select id="selectCountAdminIdByRoleId" parameterType="java.lang.Long" resultType="java.lang.Long">
        select count(1) from b_user_role
        where role_id = #{roleId}
    </select>

    <select id="selectMenuIdsByRoleId" parameterType="java.lang.Long" resultType="java.lang.Long">
        select menu_id from b_role_menu
        where role_id = #{roleId}
    </select>
    <select id="selectMenuPermsByRoleId" parameterType="java.lang.Long" resultType="java.lang.String">
        select t.permission from b_menu t,b_role_menu t2
        where t2.role_id = #{roleId} and t.id=t2.menu_id
    </select>
    
    <select id="conditionPageQuery" resultMap="BaseResultMap" parameterType="com.jusfoun.socialgrid.admin.vo.RoleVo">
        select
        <include refid="Base_Column_List" />
        from b_role u
        where 1=1 
        <if test="name != null and name!=''">
           <bind name="pattern_name" value="'%' + _parameter.getName() + '%'" />
            AND u.name like #{pattern_name} 
        </if>
    </select>
    
    <select id="selectAllByCurruntUser" parameterType="java.lang.Long" resultMap="BaseResultMap">
    	select 
			<include refid="Base_Column_List" />
		 from b_role start with ID=${department} connect by PRIOR id = parent_id
    </select>
</mapper>



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值