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;