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