日期:2014-05-18  浏览次数:20565 次

急用,在线等,hibernate hql查询
我用hibernate hql语句实现查询,我定义的表示日期的字段在数据库中是datetime型的,在程序中是string类型的,现在我要查询出某个日期之间的记录,用hql语句怎么实现呢,需要把持久化类中的string类型改为date型的吗

------解决方案--------------------
不必将string类型改为date型的
example:
 in DAO
public List findByTime(String beginTimeStr,String endTimeStr){
String hql = "from Obj where date between '"+beginTimeStr+"' and '"+endTimeStr+"'"
return getHibernateTemplate.find(hql)
}
------解决方案--------------------
数据库中的datetime可以和字符串形式的时间直接比较
可以使用between and 
也可以使用<= >=

hibernate虽然说有些复杂的查询语句不好写
但并不是你说的那样...垃圾? 你也好意思说?
你对hibernate懂多少? 就垃圾?
------解决方案--------------------
这个绝对能实现你的功能。

.
.
.
.

Session s = 得到Sessions ;
Connection conn = s.connection();
Statement stat = conn.createStatement();

ResultSet result = stat.executeQuery("写你自己的SQL");

.
.
.


其它你就自己写了。



这是我在一个项目中遇到的一个同样的问题,写HQL语句太复杂,且还写不出来,写了大概2天没弄出来,最后只好用上面的方法了,不过解你燃眉之急。