【发布时间】:2014-03-17 14:41:15
【问题描述】:
我在使用日期输入执行自定义查询时遇到问题。 这是我的sql:
<sql
id="MyEntityFinder.findByIns">
<![CDATA[
SELECT {EX_MyEntity.*}
FROM EX_MyEntity
WHERE
(EX_MyEntity.myDate >= ? AND EX_MyEntity.myDate <= ?)
]]>
</sql>
这是我的查找器 MyEntityFinderImpl:
public class MyEntityFinderImpl extends BasePersistenceImpl<MyEntity> implements MyEntityFinder{
public static final String FIND_BY_INS = "MyEntityFinder.findByIns";
public List<MyEntity> findByIns(Date from, Date to, int begin, int end) throws SystemException{
Session session = null;
try {
session = openSession();
String sql = CustomSQLUtil.get(FIND_BY_INS);
SQLQuery q = session.createSQLQuery(sql);
q.setCacheable(false);
q.addEntity("EX_MyEntity", MyEntityImpl.class);
QueryPos qPos = QueryPos.getInstance(q);
qPos.add("%"+from+"%");
qPos.add("%"+to+"%");
return (List<MyEntity>) QueryUtil.list(q, getDialect(), begin, end);
} catch (Exception e) {
throw new SystemException(e);
} finally {
closeSession(session);
}
}
}
这是我从我的 jsp 页面中调用它的方式:
Calendar aMonthAgo = Calendar.getInstance();
aMonthAgo.set(Calendar.MONTH, aMonthAgo.get(Calendar.MONTH) - 1);
Calendar now = Calendar.getInstance();
List<MyEntity> monthly = MyEntityLocalServiceUtil.findByIns(
new java.sql.Date(aMonthAgo.getTimeInMillis()),
new java.sql.Date(now.getTimeInMillis()), 0,
MyEntityLocalServiceUtil.getMyEntitysCount());
我在尝试执行查询时收到“java.sql.SQLException: data exception: invalid datetime format”,但我不明白为什么。
【问题讨论】: