springboot实体映射到数据库_springboot 根据实体类生成数据库中表

时间:2025-04-28 07:45:12

BaseEntity(公共实体)

import .*;

import ;

import ;

@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注解,也无需实现序列化接口。

配置文件

jpa:

#数据库为mysql

database: MYSQL

hibernate:

#生成为update方式

ddl-auto: update

show-sql: true

其中-auto的属性有以下几种参数:

create:每次加载hibernate会自动创建表,以后启动会覆盖之前的表,所以这个值基本不用,严重会导致的数据的丢失。

create-drop : 每次加载hibernate时根据model类生成表,但是sessionFactory一关闭,表就自动删除,下一次启动会重新创建。

update:加载hibernate时根据实体类model创建数据库表,这是表名的依据是@Entity注解的值或者@Table注解的值,sessionFactory关闭表不会删除,且下一次启动会根据实体model更新结构或者有新的实体类会创建新的表。

validate:启动时验证表的结构,不会创建表

none:启动时不做任何操作

子类实体:

import .*;

@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;