根据日期条件从mysql数据库表中获取数据

时间:2013-11-13 11:00:15

标签: java sql hibernate

任何人都可以建议我在当前日期条件下获取数据的解决方案我在类型系统当前日期的dao层方法中传递。 例如,我必须从表“X”获取数据,其中包含日期类型(Mysql)的列“startdate”,如果该日期更大,当前日期传递给java中的查询。 我试过java.util.Date但没有工作,我的要求是不要使用数据库特定的功能,如curr()或Now()。 我发现了一个相对的帖子但没有帮助。除了使用JodaTime之外别无选择。 感谢。

1 个答案:

答案 0 :(得分:1)

在您的实体类中,使用

标记“startdate”字段
@Column(name = "startdate")
@Temporal(TemporalType.DATE)
private Date startdate;

创建像这样的查询:

@NamedQuery(name = "Entity.findAfterDate", query = "SELECT e FROM Entity e WHERE e.startdate >= :dateAfter")

在您的EntityDAOImpl

public List<Entity> getEntitiesAfterDate(Date date) {
    Query query = openSession().getNamedQuery("Entity.findAfterDate");
    query.setParameter("dateAfter", date);
    return query.list();
}