SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
String query = "select a.alert_id from alert a where (alert.last_execution is null or trunc(alert.last_execution) < to_date(?, 'dd/MM/yyyy') ) and alert.frequency = ?";
jdbcTemplate.query(query, new Object[] {sdf.format(new Date()), "DAILY"}, new AlertRowMapper())
它在查询行中返回一个异常:
SQL状态[99999];错误代码[17004];列类型无效;嵌套异常是java.sql.SQLException:列类型无效 在org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83)
有人知道它为什么不起作用吗?
由于
答案 0 :(得分:0)
尝试将Date对象直接发送到jdbcTemplate
参数,然后从查询中删除to_date()
部分。 Spring应该自动转换数据类型,而不是在应用程序中转换为字符串。