JPA如何设置表名和实体名,表字段与实体字段的对应

 更新时间:2021年11月22日 10:17:28   作者:LQW_home  
这篇文章主要介绍了JPA如何设置表名和实体名,表字段与实体字段的对应,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

JPA设置表名和实体名,表字段与实体字段的对应

首先 你的jpaProperties配置项中要有

<prop key="hibernate.hbm2ddl.auto">update</prop>

这样就可以直接有对象映射为表结构,实现面向对象向数据库转化。

实体的名字可以和表名字不一样,字段名字和实体的名字也可以不一样。

package com.shiroweb.entitys; 
import java.util.Date; 
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
 
@Entity
@Table(name="shiro_user")//设置数据库中表名字
public class ShiroUser {
 @Id
 @GeneratedValue(strategy = GenerationType.IDENTITY)
 private Long id;
 @Column(name="USER_NAME")<span style="font-family: Arial, Helvetica, sans-serif;">//设置数据库中字段名字,也可以设置长度,是否为空等属性</span>
 private String username;
 @Column(name="PASS_WORD")
 private String password;
 @Column(name="CREATE_DATE")
 private Date createDate;
 @Column(name="USER_ID")
 private String userId; 
 public String getUserId() {
  return userId;
 }
 
 public void setUserId(String userId) {
  this.userId = userId;
 }
 
 public Long getId() {
  return id;
 }
 
 public void setId(Long id) {
  this.id = id;
 }
 
 public String getUsername() {
  return username;
 }
 
 public void setUsername(String username) {
  this.username = username;
 }
 
 public String getPassword() {
  return password;
 }
 
 public void setPassword(String password) {
  this.password = password;
 }
 
 public Date getCreateDate() {
  return createDate;
 }
 
 public void setCreateDate(Date createDate) {
  this.createDate = createDate;
 } 
}

JPA数据库表实体命名规则

Unknown column 'user0_.create_time' in 'field list'

数据库,表字段命名是驼峰命名法(createTime),Spring data jpa 在操作表的时候,生成的sql语句中却是create_time, 表字段不对照,

Spring data jpa基于hibernate-core-5.2.16.final.jar

这是由于jpa中hibernate的字段全名策略引起的,默认是SpringPhysicalNamingStrategy,在hibernate的包:org.hibernate.boot.model.naming中有一堆的命名策略,当然也可以实现

PhysicalNamingStrategy自定义实现。

application.properties 写法

1、无修改命名

spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

2、遇到大写字母 加”_”的命名

spring.jpa.hibernate.naming.physical-strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Spring框架中@AliasFor注解详细说明

    Spring框架中@AliasFor注解详细说明

    这篇文章主要给大家介绍了关于Spring框架中@AliasFor注解详细说明的相关资料,@AliasFor是Spring Framework中的一个注解,它用于指定注解属性之间的别名关系,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-02-02
  • 最全MyBatis核心配置文件总结(收藏)

    最全MyBatis核心配置文件总结(收藏)

    这篇文章主要介绍了最全MyBatis核心配置文件总结(收藏),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • 利用Java实现mTLS调用

    利用Java实现mTLS调用

    这篇文章主要介绍使用 Java作为客户端 与受 mTLS 保护的服务交互。为了对我们的 Java 客户端进行 ssl 配置,我们需要先设置一个 SSLContext。这简化了事情,因为 SSLContext 可用于各种 http 客户端,接下来我们一起进入下面文章了解具体内容,需要的朋友可以参考一下
    2021-11-11
  • Java实现带缓冲的输入输出流

    Java实现带缓冲的输入输出流

    本文详细讲解了Java实现带缓冲的输入输出流,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • java编写汽车租赁系统

    java编写汽车租赁系统

    这篇文章主要为大家详细介绍了java编写汽车租赁系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • 微信小程序后端Java接口开发的详细步骤

    微信小程序后端Java接口开发的详细步骤

    现在微信小程序越来越火了,相信不少人都通过各种途径学习过微信小程序或者尝试开发,本文就介绍了微信小程序后端Java接口开发的详细步骤,感兴趣的同学可以学习一下
    2021-11-11
  • 浅谈Java设计模式系列-装饰器模式

    浅谈Java设计模式系列-装饰器模式

    这篇文章主要介绍了Java设计模式系列-装饰器模式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-03-03
  • TreeSet详解和使用示例_动力节点Java学院整理

    TreeSet详解和使用示例_动力节点Java学院整理

    TreeSet是一个有序的集合,它的作用是提供有序的Set集合。这篇文章主要介绍了TreeSet使用示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • IDEA 热部署设置(JRebel插件激活)

    IDEA 热部署设置(JRebel插件激活)

    这篇文章主要介绍了IDEA 热部署设置(JRebel插件激活),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • MyBatis中map的应用与模糊查询实现代码

    MyBatis中map的应用与模糊查询实现代码

    这篇文章主要介绍了MyBatis中map的应用与模糊查询实现代码,文中通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-11-11

最新评论