liuxiaolong
2019-05-09 0d1d88cdb668e75ea8609417ac18ae19947e9525
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
<?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.jeeplus.modules.test.dao.onetomany.TestDataChild2Dao">
    
    <sql id="testDataChild2Columns">
        a.id AS "id",
        a.start AS "start.id",
        a.end AS "end.id",
        a.price AS "price",
        a.test_data_main AS "testDataMain.id",
        a.create_by AS "createBy.id",
        a.create_date AS "createDate",
        a.update_by AS "updateBy.id",
        a.update_date AS "updateDate",
        a.remarks AS "remarks",
        a.del_flag AS "delFlag",
        start.name AS "start.name",
        end.name AS "end.name"
    </sql>
    
    <sql id="testDataChild2Joins">
        LEFT JOIN test_data_main b ON b.id = a.test_data_main
        LEFT JOIN sys_area start ON start.id = a.start
        LEFT JOIN sys_area end ON end.id = a.end
    </sql>
    
    <select id="get" resultType="TestDataChild2">
        SELECT 
            <include refid="testDataChild2Columns"/>
        FROM test_data_child2 a
        <include refid="testDataChild2Joins"/>
        WHERE a.id = #{id}
    </select>
    
    <select id="findList" resultType="TestDataChild2">
        SELECT 
            <include refid="testDataChild2Columns"/>
        FROM test_data_child2 a
        <include refid="testDataChild2Joins"/>
        <where>
            a.del_flag = #{DEL_FLAG_NORMAL}
            <if test="start != null and start.id != null and start.id != ''">
                AND a.start = #{start.id}
            </if>
            <if test="end != null and end.id != null and end.id != ''">
                AND a.end = #{end.id}
            </if>
            <if test="testDataMain != null and testDataMain.id != null and testDataMain.id != ''">
                AND a.test_data_main = #{testDataMain.id}
            </if>
        </where>
        <choose>
            <when test="page !=null and page.orderBy != null and page.orderBy != ''">
                ORDER BY ${page.orderBy}
            </when>
            <otherwise>
                ORDER BY a.create_date ASC
            </otherwise>
        </choose>
    </select>
    
    <select id="findAllList" resultType="TestDataChild2">
        SELECT 
            <include refid="testDataChild2Columns"/>
        FROM test_data_child2 a
        <include refid="testDataChild2Joins"/>
        <where>
            a.del_flag = #{DEL_FLAG_NORMAL}
        </where>        
        <choose>
            <when test="page !=null and page.orderBy != null and page.orderBy != ''">
                ORDER BY ${page.orderBy}
            </when>
            <otherwise>
                ORDER BY a.create_date ASC
            </otherwise>
        </choose>
    </select>
    
    <insert id="insert">
        INSERT INTO test_data_child2(
            start,
            end,
            price,
            test_data_main,
            create_by,
            create_date,
            update_by,
            update_date,
            remarks,
            del_flag
        ) VALUES (
            #{start.id},
            #{end.id},
            #{price},
            #{testDataMain.id},
            #{createBy.id},
            #{createDate},
            #{updateBy.id},
            #{updateDate},
            #{remarks},
            #{delFlag}
        )
    </insert>
    
    <update id="update">
        UPDATE test_data_child2 SET     
            start = #{start.id},
            end = #{end.id},
            price = #{price},
            test_data_main = #{testDataMain.id},
            update_by = #{updateBy.id},
            update_date = #{updateDate},
            remarks = #{remarks}
        WHERE id = #{id}
    </update>
    
    
    <!--物理删除-->
    <update id="delete">
        DELETE FROM test_data_child2
        <choose>
            <when test="id !=null and id != ''">
                WHERE id = #{id}
            </when>
            <otherwise>
                WHERE test_data_main = #{testDataMain.id}
            </otherwise>
        </choose>
    </update>
    
    <!--逻辑删除-->
    <update id="deleteByLogic">
        UPDATE test_data_child2 SET 
            del_flag = #{DEL_FLAG_DELETE}
        <choose>
            <when test="id !=null and id != ''">
                WHERE id = #{id}
            </when>
            <otherwise>
                WHERE test_data_main = #{testDataMain.id}
            </otherwise>
        </choose>
    </update>
    
    
    <!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
    <select id="findUniqueByProperty" resultType="TestDataChild2" statementType="STATEMENT">
        select * FROM test_data_child2  where ${propertyName} = '${value}'
    </select>
</mapper>