Hibernate下的程序,可能有很多实体类,每个实体类的相关基础的增删改查操作,按照一般的做法,都是要分别写Dao方法,然后实现增删改查的操作(例如sessionFactory.getCurrentSession().get/save/delete等等),我们可以看到这些操作都是很类似的,有没有什么办法可以把这些抽取出来重构下,减少重复操作,提高效率。 利用Java的泛型,将实体类提出出一个公共的BaseEntity.java,后续具体的实体类都extends这个BaseEntity。 定义BaseDao,这时i…

2022-05-09 0条评论 49点热度 0人点赞 admin 阅读全文

使用hibernate的项目,很多时候,用HQL语言查出来的对应的是数据库实体类;另外一些情况,需要查出来对应一个普通的类(或者现在流行的说法教DTO类),就是普通的SQL查询(NativeQuery)对应出来的类,很多现在用MyBatis的都有这种类似的需求。 例如一个StudentDto.java @Data public class StudentDto { private Long id; private Integer age; private String name; } 这里我们已经没有给这个类加@E…

2022-05-07 0条评论 58点热度 0人点赞 admin 阅读全文

前面的文章介绍了Spring/SpringBoot下Hibernate开启字段驼峰命名转数据库字段下划线的方式,详见:https://blog.terrynow.com/2022/04/22/spring-springboot-hibernate-auto-convert-pojo-camel-to-underline-strategy/ 如果项目是使用的 SpringMVC+Hibernate,也需要让实体类的驼峰命令转数据库字段的下划线,要怎么做呢,同样本人也是测试了网上说的hibernate.physical…

2022-05-02 0条评论 81点热度 0人点赞 admin 阅读全文

之前Hibernate中的实体类,对应数据库的字段,例如实体类中驼峰命令是:createDate,对应到数据库是带下划线的:create_date字段,一般来说是需要加@Column特别指定对应数据库表的字段的,例如: @Column(name = "create_date") public Date getCreateDate() { return createDate; } public void setCreateDate(Date createDate) { this.createDate = create…

2022-04-22 0条评论 89点热度 0人点赞 admin 阅读全文

Hibernate遇到一个报错问题,如下: java.sql.SQLException: HOUR_OF_DAY: 0 -> 1 网上查了,都说可能是: mysql jdbc驱动问题 数据库连接字符串的时区问题 经查,这些问题都排除了,还是报错。 我的实体类是: @Entity @Table(name = "t_student") public class Student implements Serializable { private Long id; private boolean disabled;/…

2022-03-10 0条评论 63点热度 0人点赞 admin 阅读全文