我正在尝试创建一个查询,该查询将根据createDate字段是否落在表示日期的传递字符串之后返回Person对象列表。
我的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();
}
答案 0 :(得分:2)
我没有看到任何问题。代码应该工作。你可以试试这个。
public List<Person> searchDate(String startDate) {
Calendar cal = Calendar.getInstance();
cal.set( year, month-1, day );
Date createDate = cal.getTime();
Session session = getSessionFactory().openSession();
Criteria criteria = session.createCriteria(Person.class );
criteria.add( Restrictions.eq( "createDate", createDate) );
return criteria.list();;
}
我希望这会有所帮助。如果在这里讨论有什么问题,因为讨论是一种学习方式。