我想创建一个查询,该查询将基于createDate字段落在表示日期的传递字符串之后而返回一个Person对象列表。使用日期列的HQL查询
我CREATEDATE领域是这样映射在我的Person类
@Basic(optional = false)
@Column(name = "CREATE_DATE")
@Temporal(TemporalType.DATE)
private Date createDate;
我的功能,找到所有的人结果的日期看起来像这样之后。
public List<Person> searchDate(String startDate) {
Session session = getSessionFactory().openSession();
String s_query = "FROM Person as p WHERE p.createDate >= :date";
Query query;
DateFormat df = new SimpleDateFormat('dd-MMM-yy');
try {
Date dt = df.parse(startDate);
query = session.createQuery(s_query).setDate("date", dt);
} catch(ParseException e){}
return (List<Person>)query.list();
}
您能否请张贴错误? – dseibert 2011-03-24 19:10:10
@ client09,没有错误,它只是不返回正确的列表,它实际上没有找到任何东西。它应该找到一个值,我已经在SQL开发人员测试了查询,以确保应该返回一个值 – medium 2011-03-24 21:50:14
也许你想实际捕获ParseException并将某些内容打印到日志中? – mindas 2011-03-24 21:58:39