<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
        "http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap namespace="com.house365.beans.entity.RushCustomerProjectRelEntity">
    <typeAlias alias="rushCustomerProjectRelEntity"
               type="com.house365.beans.entity.RushCustomerProjectRelEntity"/>
    <resultMap id="rushCustomerProjectRel"
               class="com.house365.beans.entity.RushCustomerProjectRelEntity">
        <result property="id" column="id"/>
        <result property="rushCustomerId" column="rush_customer_id"/>
        <result property="projectId" column="project_id"/>
        <result property="projectName" column="project_name"/>
    </resultMap>

    <!-- 用于select查询公用抽取的列 -->
    <sql id="rushCustomerProjectRel.columns">
	    <![CDATA[

        id, rush_customer_id, project_id, project_name

        ]]>
	</sql>

    <!-- 新增记录 -->
    <insert id="save" parameterClass="rushCustomerProjectRelEntity">
        <![CDATA[
	        INSERT INTO rush_customer_project_rel (
	        	id, 
	        	rush_customer_id, 
	        	project_id, 
	        	project_name
	        ) VALUES (
	        	#id#, 
	        	#rushCustomerId#, 
	        	#projectId#, 
	        	#projectName#
	        )
	    ]]>
        <selectKey resultClass="java.lang.Integer" type="post"
                   keyProperty="id">
            SELECT LAST_INSERT_ID()
        </selectKey>
    </insert>

    <!-- 通过ID修改 -->
    <update id="update" parameterClass="rushCustomerProjectRelEntity">
	    <![CDATA[

	        UPDATE rush_customer_project_rel SET
		        rush_customer_id = #rushCustomerId#, 
		        project_id = #projectId#, 
		        project_name = #projectName#
	        WHERE 
		        id = #id#

        ]]>
	</update>

    <!-- 通过ID删除 -->
    <delete id="delete">
	    <![CDATA[

	        DELETE FROM rush_customer_project_rel WHERE
	        id = #id#

        ]]>
	</delete>

    <!-- 通过ID列表批量删除 -->
    <delete id="deleteByIds" parameterClass="java.lang.String">
	    <![CDATA[

	        DELETE FROM rush_customer_project_rel WHERE
	        id IN ($ids$)

        ]]>
	</delete>

    <!-- 通过ID查询 -->
    <select id="getById" resultMap="rushCustomerProjectRel">
        SELECT
        <include refid="rushCustomerProjectRel.columns"/>
        <![CDATA[
	        FROM rush_customer_project_rel 
	        WHERE 
		        id = #id#
	    ]]>
    </select>

    <!-- 用于分页查询抽取的公共的条件 -->
    <sql id="rushCustomerProjectRel.queryPage">
        <dynamic prepend="WHERE">
            <!-- 默认不开启实体作为条件 -->
            <!--
            <isNotNull property="entity">
                <isNotEmpty prepend="AND" property="entity.id">
                    <![CDATA[
                    id = #entity.id#
                    ]]>
                </isNotEmpty>
                <isNotEmpty prepend="AND" property="entity.rushCustomerId">
                    <![CDATA[
                    rush_customer_id = #entity.rushCustomerId#
                    ]]>
                </isNotEmpty>
                <isNotEmpty prepend="AND" property="entity.projectId">
                    <![CDATA[
                    project_id = #entity.projectId#
                    ]]>
                </isNotEmpty>
                <isNotEmpty prepend="AND" property="entity.projectName">
                    <![CDATA[
                    project_name = #entity.projectName#
                    ]]>
                </isNotEmpty>
            </isNotNull>
             -->
            <isNotNull property="searchFilters">
                <isNotEmpty prepend="AND" property="searchFilters.id">
                    <![CDATA[
					id $searchFilters.id.operation$ #searchFilters.id.value#
		            ]]>
                </isNotEmpty>
                <isNotEmpty prepend="AND" property="searchFilters.rushCustomerId">
                    <![CDATA[
					rush_customer_id $searchFilters.rushCustomerId.operation$ #searchFilters.rushCustomerId.value#
		            ]]>
                </isNotEmpty>
                <isNotEmpty prepend="AND" property="searchFilters.projectId">
                    <![CDATA[
					project_id $searchFilters.projectId.operation$ #searchFilters.projectId.value#
		            ]]>
                </isNotEmpty>
                <isNotEmpty prepend="AND" property="searchFilters.projectName">
                    <![CDATA[
					project_name $searchFilters.projectName.operation$ #searchFilters.projectName.value#
		            ]]>
                </isNotEmpty>
            </isNotNull>
        </dynamic>
        <dynamic prepend="ORDER BY">
            <isNotNull property="orderColumn">
                <![CDATA[
				$orderColumn$
				]]>
                <isNotNull property="orderMode">
                    $orderMode$
                </isNotNull>
            </isNotNull>
        </dynamic>
    </sql>

    <!-- 为分页查询符合条件的记录数 -->
    <select id="queryByPage_count" resultClass="int">
        SELECT count(*) FROM rush_customer_project_rel
        <include refid="rushCustomerProjectRel.queryPage"/>
    </select>

    <!-- 分页查询指定页记录 -->
    <select id="queryByPage" resultMap="rushCustomerProjectRel">
        SELECT
        <include refid="rushCustomerProjectRel.columns"/>
        <![CDATA[
	        FROM rush_customer_project_rel 
	    ]]>
        <include refid="rushCustomerProjectRel.queryPage"/>
        <![CDATA[
		    LIMIT #paging.startRecord#, #paging.pageSize#
        ]]>
    </select>

    <!-- 查询所有记录 -->
    <select id="queryAll" resultMap="rushCustomerProjectRel">
        SELECT
        <include refid="rushCustomerProjectRel.columns"/>
        <![CDATA[
		    FROM rush_customer_project_rel
	    ]]>
        <include refid="rushCustomerProjectRel.queryPage"/>
    </select>
</sqlMap>