如何在使用MyBatis时自动更新创建/修改日期等字段?

Mar*_*rco 2 aop spring dry mybatis

我正在使用MyBatis,并希望在每个"创建","修改"的表上实现2个字段.它们都是日期字段.有没有办法在插入或更新时自动更新这些字段?幕后我可以调整映射,但我想知道是否有更通用和干的方式这样做?

And*_*ndy 7

不,如果没有编写sql映射来更新列,mybatis没有自动执行此操作的机制.

一种替代方案是数据库触发器.我不确定我会建议,但我们只是在sql地图中编写代码.

您可以在这样的SQL地图中对其进行编码,

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

要么,

<update id="someUpdate">
   update some_table
   set some_column = #{someValue}, modified=sysdate
   where some_id = #{someId}
</update>
Run Code Online (Sandbox Code Playgroud)