보뇨 다이어리

mybatis 사용시 디비에 데이터를 가져오지 못하는 에러 본문

컴퓨터 관련/DB 정보

mybatis 사용시 디비에 데이터를 가져오지 못하는 에러

보뇨 2018. 7. 31. 09:56
반응형

와..........진짜 이거때문에 어제 디지는줄알았따...ㅠㅠㅠㅠ 드뎌 20시간만에 깨달았다

이런건 또 혼자만 알기아까우니 무조건 공유!


자자...이렇게 흥분한 이유는 간단하다 난 쿼리를 썻다.. 아래 쿼리는 굉장히 보기 힘들지만 단순히 조건절을 보면된다

예를 들어 46번줄의 limit 가 널이 아닐경우 오더바이할때 한정된 데이터만 가져오게할려고한다

근데 저 limit 이란거는 parameter model class 에 멤버변수로 지니고 있어야하는데 본인의 경우 뭔 생각인지 몰라도 이걸빼먹음...;;;;

그래서 limit 이라는 파라미터가 없어도 아예 쿼리 실행을 못하는것이다!! 이건 모르고 있었음... 아예 디비에 접근조차못한다는게..

결론은 모든 변수들은 파라미터 모델 클래스안에 멤버변수로 지니고 있어야한다~ 이것이다(진짜 간단한건데 이걸....흐흐흑)

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
    <!-- get commute_record data -->
    <select id="getCommuteRecordSelectList" resultType="com.tistory.vessel.api.vo.CommuteRecordVO">
        SELECT
            r.id
            , UNIX_TIMESTAMP(r.come) as come
            , UNIX_TIMESTAMP(r.leave) as `leave`
            , r.employee_id
            , r.division_id
            , r.manager_id
            , r.come_match
            , r.leave_match
            , r.pad
            , valid
            , e.wage
            , come_beacon
            , leave_beacon
        FROM commute_record as r
        inner join employee as e on r.employee_id = e.id
        left outer join grade as g on e.grade_id = g.id
        <trim prefix="WHERE" prefixOverrides="AND|OR">
            <if test="employee_id != null">AND e.id = #{employee_id}</if>
            <if test="company_id != null">AND d.company_id = #{company_id}</if>
            <if test="valid != null">AND r.valid = #{valid}</if>
            <if test="manager_id != null">AND (e.manager_id = #{manager_id} OR e.id = #{manager_id})</if>
            <if test="hourly_wage != null">AND e.hourly_wage = #{hourly_wage}</if>
            <if test="division_id != null">AND r.division_id = #{division_id}</if>
            
            <if test="come_gt != null"><![CDATA[AND r.come >= from_unixtime(#{come_gt})]]></if>
            <if test="come_lt != null"><![CDATA[AND r.come <= from_unixtime(#{come_lt})]]></if>
            <if test="leave_gt != null"><![CDATA[AND r.leave >= from_unixtime(#{leave_gt})]]></if>
            <if test="leave_lt != null"><![CDATA[AND r.leave <= from_unixtime(#{leave_lt})]]></if>
 
            <if test="come_match != null">
                <if test="is_upper == false">
                    <![CDATA[
                    AND (r.come_match < #{come_match} or r.come_match is null)
                    ]]>
                </if>
                <if test="is_upper == null or is_upper != false">
                    <![CDATA[
                    AND r.come_match >= #{come_match}
                    ]]>
                </if>
            </if>
            ORDER BY r.come DESC
            <if test="limit != null">limit #{limit}</if>
        </trim>
    <insert>
cs


반응형

'컴퓨터 관련 > DB 정보' 카테고리의 다른 글

mybatis date 조건 비교처리  (0) 2018.08.14
쿼리 리팩토링하기 1  (0) 2018.08.14
마이바티스 리팩토링하기 2  (0) 2018.07.31
마이바티스 리팩토링하기 1  (0) 2018.07.31
FROM_UNIXTIME, TIME 사용  (0) 2018.07.17