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;