使用日期列的 HQL 查询

发布于 2024-10-26 11:07:15 字数 772 浏览 1 评论 0原文

我正在尝试创建一个查询,该查询将根据 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();

}

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();

}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

仅此而已 2024-11-02 11:07:15

我认为那里没有任何问题。该代码应该可以工作。您可以尝试将此作为替代方案。

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 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文