springboot 根据实体类生成数据库中表

BaseEntity(公共实体)


import javax.persistence.*;
import java.io.Serializable;
import java.util.Date;

@Data //生成set get 方法  需要引入lombok插件和jar
@MappedSuperclass
public class BaseEntity {
    @Id
    @GeneratedValue//主键生成策略
    private Integer id;          //id
    private Date createTime;     //创建时间
    private Integer createPaper;  //创建人
    private Date updateTime;     //更新时间
    private Integer updatePaper; //修改人
}

注意:

1.标注为@MappedSuperclass的类将不是一个完整的实体类,他将不会映射到数据库表,但是他的属性都将映射到其子类的数据库字段中。

2.标注为@MappedSuperclass的类不能再标注@Entity或@Table注解,也无需实现序列化接口。

配置文件application.yml

jpa:
    #数据库为mysql
    database: MYSQL
    hibernate:
      #生成为update方式
      ddl-auto: update
      show-sql: true

 

其中spring.jpa.hibernate.ddl-auto的属性有以下几种参数:

create:每次加载hibernate会自动创建表,以后启动会覆盖之前的表,所以这个值基本不用,严重会导致的数据的丢失。
create-drop : 每次加载hibernate时根据model类生成表,但是sessionFactory一关闭,表就自动删除,下一次启动会重新创建。
update:加载hibernate时根据实体类model创建数据库表,这是表名的依据是@Entity注解的值或者@Table注解的值,sessionFactory关闭表不会删除,且下一次启动会根据实体model更新结构或者有新的实体类会创建新的表。
validate:启动时验证表的结构,不会创建表

none:启动时不做任何操作


子类实体:

import javax.persistence.*;

@Data
@Entity
public class Account extends BaseEntity {


    private String accountName;
    private String account;
    private String bankOfDeposit;
    private Integer districtId;
    private String detailedAddress;
    private String creditCode;
    private String filing;
    private String phone;
    private String name;

 

转载于:https://my.oschina.net/u/3535099/blog/3066271

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值