`

让hibernate支持date_add

阅读更多
今天做东西的时候想去查找某一天的记录数据,如果用单独的sql语句,对于mysql只需要 time between 某天 and DATE_ADD((某天, INTERVAL 1 DAY);但是由于我使用的是hibernate,然后我就直接写成了 time between ?and DATE_ADD((?, INTERVAL 1 DAY);然后传递了两个参数进去,但是这是就报错了,说sql没有此函数,然后从网上查了好久,有人提示可以重写hibernate的dialect, 是hibernate支持这种数据库函数,下面的这个测试通过
Java代码
  1. public   class  MysqlDailetExtend  extends  MySQLInnoDBDialect {  
  2.     public  MysqlDailetExtend() {  
  3.         super ();  
  4.         registerFunction("date_add" new  SQLFunctionTemplate(Hibernate.DATE,  "date_add(?1, INTERVAL ?2 ?3)" ));  
  5.     }  
  6. }  
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_QUERY

    Hibernate还提供了对结果集处理的支持,包括如何从查询结果中提取数据并转换为对象。 - **单个对象查询**:当查询预期只返回一条记录时,可以使用`uniqueResult()`方法。 ```java Cat mother = (Cat) session....

    Hibernate-add学习

    ### Hibernate-add学习知识点详解 #### 一、MySQL、Oracle 和 SQL Server 综合对照表解析 **1. 配置文件对照表** 在本部分,我们对比了三种数据库(MySQL、Oracle、SQL Server)在Hibernate配置文件中的设置差异...

    hibernate基础 注解开发 检索

    - **@Temporal**:用于处理日期类型,支持DATE、TIME、TIMESTAMP三种日期格式。 例如: ```java @Entity @Table(name = "t_d3h01_book") public class Book { @Id @GeneratedValue(strategy = GenerationType....

    Myeclipes+spring+hibernate配置

    MyEclipse是一个强大的集成开发环境,提供了对Spring和Hibernate的内置支持,使得开发者能够方便地整合这些框架。 二、数据库表结构 配置示例中提到了一个简单的用户表(User)结构,包括id(主键)、username、...

    用myeclipse自动生成hibernate配置文件

    - 右键点击项目名称,选择`MyEclipse > Add Hibernate Capabilities`,这将为项目添加所需的Hibernate库和配置。 4. **配置数据库连接**: - 打开`Database Explorer`视图(`Window > Show View > Other > DB ...

    Hibernate的Criteria用法总结

    Example是另一种特殊的Criterion,它基于一个实体对象创建,可以用来执行基于属性值的复杂查询,支持忽略大小写和模糊匹配。例如: ```java Example exampleUser = Example.create(u).ignoreCase().enableLike...

    Hibernate Criteria用法大全.docx

    Criterion dateCrit = Restrictions.ge("date", startDate); criteria.add(Restrictions.and(statusCrit, dateCrit)); ``` 9. **投影(Projections)、聚合(aggregation)和分组(grouping)** 投影用于指定...

    Hibernate多对多数据表操作-插入

    在IT领域,数据库管理和持久化框架是至关重要的组成部分,尤其是对于Java开发而言,Hibernate作为一款优秀的对象关系映射(ORM)框架,极大地简化了数据库操作。本篇文章将深入探讨使用Hibernate进行多对多数据表...

    Hibernate反向工程法.pdf

    - 在工程上右键,选择“MyEclipse”->“Add Hibernate Capabilities”。 - 按照提示创建Hibernate配置文件`hibernate.cfg.xml`,并设置数据库相关信息。 - 定义Hibernate SessionFactory所在的包路径,例如`zizz....

    Hibernate学习资料

    Hibernate支持多种内置的数据类型映射,包括基本类型如Integer、String、Date等,也支持复合类型的映射。 #### Hibernate内置标识符生成器 标识符生成器负责生成实体对象的主键值。Hibernate提供了多种内置的标识符...

    hibernate-shards.jar

    stating that you changed the files and the date of any change. c) You must cause the whole of the work to be licensed at no charge to all third parties under the terms of this License. d) If a ...

    hibernate一对多映射

    在Java持久化框架Hibernate中,一对多映射(One-to-Many Mapping)是数据库关系模型中常见的关联类型,它表示一个实体(如一个用户)可以与多个其他实体(如订单)相关联。在这个实例中,我们将深入探讨如何在...

    六种方式实现hibernate查询

    Date age = new Date(); if (age != null) dc.add(Restrictions.eq("age", age)); ``` 适用情况:动态查询,灵活性强。缺点:需要掌握Criteria的使用方法。 例子查询 示例查询是一种简单的查询方式,使用...

    Hibernate中Criteria的完整用法

    Hibernate中的Criteria API是一种用于执行动态查询的机制,它允许开发者在运行时构建SQL查询,而无需直接编写SQL语句。Criteria API提供了更加面向对象的方式来处理数据库查询,这使得代码更易于理解和维护,尤其是...

    struts2+hibernate整合例子——新闻管理系统

    SELECT * FROM News WHERE title LIKE '%关键词%' OR publish_date LIKE '%关键词%' ``` 在Hibernate中,可以通过Criteria API或Query API来实现这样的查询。Criteria API更加面向对象,而Query API更接近SQL。例如...

    hibernate学习笔记定义.pdf

    criteria.add(Restrictions.le("birthday", new Date())); List<User> users = criteria.list(); ``` 上述代码分别展示了如何使用HQL和Criteria来查询用户信息。 文档还提到了Hibernate会话的管理和事务处理,强调...

    hibernate5.0.4入门实例[定义].pdf

    接下来,右键点击 "lib" 文件夹,选择 "Build Path" -> "Add to Build Path",这将把 JAR 文件添加到项目的类路径中,确保在编译和运行时能够找到这些库。 2. **实体类定义** 在项目中创建一个名为 ...

    Struts2 hibernate3 简单的学生查询

    Example em=Example.create(student).setPropertySelector(new EmptyStringSelector()); List list =session.createCriteria(Student.class).add... .add(Restrictions.between("birthday", date1, date2)) .list();

Global site tag (gtag.js) - Google Analytics