mabatis逆向工程selectByExample方法where条件中时间参数问题
前天使用mybatis逆向工程后,使用selectByExample方法的时候,经过criteria生成where条件根据时间参数去查询数据的时候,发现查询数据不对,根据日志打印出的参数,发现时间参数只有日期,没有后面的时间了。先是在查询之前打印时间参数,看了看没问题。然后看mapper.xml中的相应字段也是timestamp类型的。然后又去问别人,都找不到哦原因。于是看逆向工程生成的example源码,发现在Example类里面的addCriterionForJDBCDate方法中是new java.sql.Date(long value)去生成时间参数条件的,于是将java.sql.Date换成java.sql.Timestamp类。问题解决。原因是java.sql包里面的Date只包含日期部分,Timestamp类包含日期,时分秒等完整的时间。以后使用逆向工程时要注意下。
使用MyBatis逆向工程时,selectByExample方法的where条件中,时间参数被错误地转换为java.sql.Date,导致时间部分丢失。通过将时间参数类型改为java.sql.Timestamp解决问题。
660

被折叠的 条评论
为什么被折叠?



