今天做东西的时候想去查找某一天的记录数据,如果用单独的sql语句,对于mysql只需要
time between 某天 and DATE_ADD((某天, INTERVAL 1
DAY);但是由于我使用的是hibernate,然后我就直接写成了 time between ?and DATE_ADD((?,
INTERVAL 1
DAY);然后传递了两个参数进去,但是这是就报错了,说sql没有此函数,然后从网上查了好久,有人提示可以重写hibernate的dialect,
是hibernate支持这种数据库函数,下面的这个测试通过
-
public
class
MysqlDailetExtend
extends
MySQLInnoDBDialect {
-
public
MysqlDailetExtend() {
-
super
();
-
registerFunction("date_add"
,
new
SQLFunctionTemplate(Hibernate.DATE,
"date_add(?1, INTERVAL ?2 ?3)"
));
-
}
-
}
public class MysqlDailetExtend extends MySQLInnoDBDialect {
public MysqlDailetExtend() {
super();
registerFunction("date_add", new SQLFunctionTemplate(Hibernate.DATE, "date_add(?1, INTERVAL ?2 ?3)"));
}
}
这个时候再使用hibernate查询的时候,time between ?and date_add((?,
1,DAY);这样就可以实现数据库里面的date_add方法了,好一个费劲啊,不过这种方法的调用对于提高开发效率还是很有必要的,并且类似于这种查
询在关于时间的查询中是经常遇到的。
分享到:
相关推荐
Hibernate_3.2.0_Reference_zh_CN.rar hibernate中文api
hibernate_validator_reference 官方文档,路过不要错过
Hibernate_3.2.0_Reference_zh_CN比较好用,欢迎大家下载
Hibernate教程1_从入门到精通Hibernate教程1_从入门到精通Hibernate教程1_从入门到精通Hibernate教程1_从入门到精通
学习hibernate_cache_level二级缓存项目
Hibernate_PDF_超好 Hibernate_PDF_超好 Hibernate_PDF_超好
轻量级Java_EE企业应用实战_Struts_2+Spring_3+Hibernate整合开发_第3版_mk.part1
hibernate_3.5.0_final EntityManager 参考文档 pdf hibernate_3.5.0_final EntityManager 参考文档 pdf
hibernate_jar_2hibernate_jar_2
(jar包)struts-2.3.3____hibernate4.1.6____spring-3.1.2 (jar包)struts-2.3.3____hibernate4.1.6____spring-3.1.2
Hibernate_3.2.0_Reference_zh_CN.chm Hibernate_3.2.0_Reference_zh_CN.chm
hibernate jar包_1hibernate jar包_1
轻量级JavaEE企业应用实战_Struts2+Spring3+Hibernate整合开发_第3版.part2
hibernate_reference_3.5.6.pdf hibernate_reference_3.5.6.pdf hibernate_reference_3.5.6.pdf
hibernate_note_new_tarhibernate_note_new_tar
Hibernate_Tools_for_Eclipse插件的安装和使用
hibernate指导手册及案例,用于hibernate入门学习
Hibernate_session_factory_配置
hibernate_in_action 源码