0
我很喜欢这个问题。请帮忙。Cayenne SQLTemplate返回不正确的结果
sql = "SELECT * FROM scheduler_assignment a WHERE a.start < #bind($end)";
SQLTemplate query = new SQLTemplate(Assignment.class, sql);
query.setFetchingDataRows(true);
Map<String, Object> params = new HashMap<String, Object>();
params.put("end", end);
query.setParameters(params);
ObjectContext context = BaseContext.getThreadObjectContext();
List<DataRow> rows = context.performQuery(query);
end
是Date对象。当我将end
更改为等效字符串时,查询正常工作。有谁知道为什么传入Date对象不能用于绑定指令?谢谢!
谢谢你看我的问题。我验证了scheduler_assignment.start是MySQL数据库中的DATETIME数据类型。我把你的例子的类型的参数,但我仍然得到错误的结果。这是执行的SQL的日志。当我从MySQL Workbench运行查询时,我收到一行。当我使用上面的代码运行相同的查询时,我得到零行。 'SELECT * FROM scheduler_assignment a WHERE a.start <? [bind:1:'2013-08-31 23:00:00']' – Tuan
它可以转换到不同的时区吗? – Tuan
http://objectstyle.org/cayenne/lists/cayenne-user/2007/08/0027.html – Tuan