使用日期列的HQL查询 [英] HQL query using a date column
问题描述
我试图创建一个查询,它会根据createDate字段落在表示日期的传递字符串之后返回Person对象列表。
我的createDate字段在我的Person类中是这样映射的
$ b $ c $ CREATE_DATE)
@Temporal(TemporalType.DATE)
private日期createDate;
在日期后查找所有人物结果的功能如下所示。
public List< Person> searchDate(String startDate){
Session session = getSessionFactory()。openSession();
String s_query =FROM Person as p WHERE p.createDate> =:date;
查询查询;
DateFormat df = new SimpleDateFormat('dd-MMM-yy');
尝试{
Date dt = df.parse(startDate);
query = session.createQuery(s_query).setDate(date,dt);
$ b $ catch(ParseException e){}
return(List< Person>)query.list();
那里没有任何问题。代码应该工作。
public List< Person> searchDate(String startDate){
Calendar cal = Calendar.getInstance();
cal.set(year,month-1,day);
日期createDate = cal.getTime();
Session session = getSessionFactory()。openSession();
Criteria criteria = session.createCriteria(Person.class);
criteria.add(Restrictions.eq(createDate,createDate));
返回criteria.list();;
}
我希望这会有所帮助。如果有什么问题在这里讨论,因为讨论是一种学习方式。
I am trying to create a query that will return a List of Person objects based on if the createDate field falls after a passed string that represents a date.
My createDate fields is mapped like this in my Person class
@Basic(optional = false)
@Column(name = "CREATE_DATE")
@Temporal(TemporalType.DATE)
private Date createDate;
My function to find all person results after a date looks like this.
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();
}
I don't see any problem there. The code should work. You can try this as an alternative.
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();;
}
I hope this will help. If is there anything wrong discuss here because discussing is a way to learn.
这篇关于使用日期列的HQL查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!