2011-08-23 4 views
2

MyBatis를 사용하고 있고 'created', 'modified'테이블마다 2 개의 필드를 구현하고 싶습니다. 둘 다 데이트 필드입니다. 삽입 또는 업데이트시 이러한 필드를 자동으로 업데이트하는 방법이 있습니까? Offcourse 내가 매핑을 조정할 수 있지만,이 일을 더 일반적이고 건조한 방법이 있는지 궁금 해서요?MyBatis를 사용할 때 만든 날짜/수정 된 날짜와 같은 필드를 자동으로 업데이트하는 방법은 무엇입니까?

답변

6

아니요, mybatis는 SQL 매핑을 코딩하여 열을 업데이트하지 않으면 자동으로이 작업을 수행 할 수있는 메커니즘이 없습니다.

하나의 대안은 database triggers입니다. 나는 그것을 권장할만한 것은 확실하지 않다. 단지 SQL Maps에 코드를 작성한다.

당신은이 같은 SQL 맵에서 내 마지막 업데이트를

<insert id="someInsert">  
    insert into dummy_table  
    ( 
     SOME_COLUMN, 
     CREATED_DT  
    )  
    values 
    (
     #{someValue}, 
     sysdate  
    ) 
</insert> 

또는

<update id="someUpdate"> 
    update some_table 
    set some_column = #{someValue}, modified=sysdate 
    where some_id = #{someId} 
</update> 
+0

검사를 그것을 코드 수, 그게 말이됩니까? – Andy

+0

완벽한 말이됩니다! 예를 들어 주셔서 감사합니다. 그 다음에 끝내기가 쉽습니다 :). 나는 잘못된 길을 가고 있었다. 발생하는 또 다른 질문은 이와 같은 쿼리를 저장하는 것이 좋습니다. 주석을 사용하기 시작했는데, 이제는 XML 매퍼를 사용하는 경향이 있습니다. 나는 이것에 대한 어떤 생각이라도 어느 정도의 경험을 가지고 있습니다. 예를 들어 다시 한번 감사드립니다! – Marco

+0

나는 또한 날짜 값을 객체의 일부로 만들어야하는지 아닌지 궁금합니다. 실제 비즈니스 객체에 데이터 속성을 삽입 했습니까? 아니면 DB에서 레코드를 수정하고 도메인/객체 모델에서 필요하지 않은 메타 데이터로 보십니까? – Marco

관련 문제