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; //修改人 }
注意:java
1.标注为@MappedSuperclass的类将不是一个完整的实体类,他将不会映射到数据库表,可是他的属性都将映射到其子类的数据库字段中。mysql
2.标注为@MappedSuperclass的类不能再标注@Entity或@Table注解,也无需实现序列化接口。spring
jpa: #数据库为mysql database: MYSQL hibernate: #生成为update方式 ddl-auto: update show-sql: true
其中spring.jpa.hibernate.ddl-auto的属性有如下几种参数:sql
create:每次加载hibernate会自动建立表,之后启动会覆盖以前的表,因此这个值基本不用,严重会致使的数据的丢失。
create-drop : 每次加载hibernate时根据model类生成表,可是sessionFactory一关闭,表就自动删除,下一次启动会从新建立。
update:加载hibernate时根据实体类model建立数据库表,这是表名的依据是@Entity注解的值或者@Table注解的值,sessionFactory关闭表不会删除,且下一次启动会根据实体model更新结构或者有新的实体类会建立新的表。
validate:启动时验证表的结构,不会建立表数据库
none:启动时不作任何操做session
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;