使用日期列的HQL查询 [英] HQL query using a date column

查看:97
本文介绍了使用日期列的HQL查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图创建一个查询,它会根据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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆