文档章节

Spring data jpa Entity实体类命名规范

jizhi_no1
 jizhi_no1
发布于 2017/03/26 12:54
字数 312
阅读 855
收藏 0
  • 代码布局

使用Spring Data Jpa 框架操作MySql数据库时,写了一个Blog实体类,属性如下:

@Entity
public class Blog {
    @Id
    @GeneratedValue(strategy= GenerationType.AUTO)
    private Long id;
    private String title;
    private String content;
    @Temporal(TemporalType.DATE) // date (只有日期)
    private Date createTime;
}

一个操作数据MySql数据库的接口:

public interface BlogService extends PagingAndSortingRepository<Blog, Long> {
    Page<Blog> findAll(Pageable pageable);
    List<Blog> findAll();
    Blog findOne(Long id);
}

调用findAll()方法:

List<Blog> blogs = blogService.findAll();
  • 数据库表

 

  • 执行结果

执行findAll()方法时发生异常:Unknown column 'blog0_.create_time' in 'field list'

查看了一下Hibernate生成的执行语句:

select blog0_.id as id1_0_, blog0_.content as content2_0_, blog0_.create_time as create_t3_0_, blog0_.title as title4_0_ from blog blog0

原来,我的createTime自动被转换成了create_time字段,即使在createTime字段上加上Column,name属性设置成createTime还是出现同样的错误。

由此推断,Hibernate在生成字段时,会将单词中间大写字母变成小写,并且中间加上下划线。

代码改成如下就没有问题了:

@Entity
public class Blog {
    @Id
    @GeneratedValue(strategy= GenerationType.AUTO)
    private Long id;
    private String title;
    private String content;
    @Temporal(TemporalType.DATE) // date (只有日期)
    @Column()
    private Date createtime;
}

或者将数据库的createTime字段改成create_time字段,也能解决问题。

© 著作权归作者所有

jizhi_no1
粉丝 0
博文 5
码字总数 597
作品 0
安庆
私信 提问
Spring Data JPA 使用

Java 持久层框架访问数据库的方式大致分为两种。一种以 SQL 中心,封装一定程度的 JDBC 操作,比如 MyBatis。另一种是以 Java Entity 为中心,将实体的关系对应到数据库表之间的关系,如 OR...

TurboSanil
06/13
243
0
spring Data JPA

什么是JPA? 全称Java Persistence API,可以通过注解或者XML描述【对象-关系表】之间的映射关系,并将实体对象持久化到数据库中。 为我们提供了: 1)ORM映射元数据:JPA支持XML和注解两种元...

狼王黄师傅
2018/10/20
54
0
SpringBoot | 第三十章:Spring-data-jpa的集成和使用

前言 在前面的第九章:Mybatis-plus的集成和使用章节中,介绍了使用框架进行数据库的访问。今天,我们来简单学习下如何使用进行数据库的访问。由于本人未使用过,也是趁着写博文的机会查阅了...

oKong
2018/10/31
278
0
(入门帖)使用 Spring Data JPA 简化 JPA 开发

本文主要讲述 Spring Data JPA,但是为了不至于给 JPA 和 Spring 的初学者造成较大的学习曲线,我们首先从 JPA 开始,简单介绍一个 JPA 示例;接着重构该示例,并引入 Spring 框架,这两部分...

阿莱倪士
2014/01/09
675
0
Spring 和 JavaEE的关系

Java EE vs Spring. Or: What is a standard? 什么是JavaEE J2EE是一系列技术标准所组成的平台。JavaEE包含了对一系列标准(接口)的实现。如果你要用这些接口,恐怕要使用JavaEE服务器而不仅...

Finley.Hamilton
2014/11/12
511
0

没有更多内容

加载失败,请刷新页面

加载更多

web前端开发初级

Web 页面制作基础 Web 的相关概念 WWW Website URL Web Standard Web Browser Web Server HTML 基础 标记语言 从 HTML 到 XHTML HTML 的基本结构 HTML 的相关基本定义 HTML 常用开发工具 HT...

达达前端小酒馆
25分钟前
3
0
PostgreSQL 11.3 locking

rudi
今天
5
0
Mybatis Plus sql注入器

一、继承AbstractMethod /** * @author beth * @data 2019-10-23 20:39 */public class DeleteAllMethod extends AbstractMethod { @Override public MappedStatement injectMap......

一个yuanbeth
今天
15
1
一次写shell脚本的经历记录——特殊字符惹的祸

本文首发于微信公众号“我的小碗汤”,扫码文末二维码即可关注,欢迎一起交流! redis在容器化的过程中,涉及到纵向扩pod实例cpu、内存以及redis实例的maxmemory值,statefulset管理的pod需要...

码农实战
今天
4
0
为什么阿里巴巴Java开发手册中不建议在循环体中使用+进行字符串拼接?

之前在阅读《阿里巴巴Java开发手册》时,发现有一条是关于循环体中字符串拼接的建议,具体内容如下: 那么我们首先来用例子来看看在循环体中用 + 或者用 StringBuilder 进行字符串拼接的效率...

武培轩
今天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部