@MappedSuperclass的作用


在Jpa里, 當我們在定義多個實體類時, 可能會遇到這幾個實體類都有幾個共同的屬性, 這時就會出現很多重復代碼.
  這時我們可以選擇編寫一個父類,將這些共同屬性放到這個父類中, 並且在父類上加上@MappedSuperclass注解.

注意:

  1. 標注為@MappedSuperclass的類將不是一個完整的實體類,他將不會映射到數據庫表,但是他的屬性都將映射到其子類的數據庫字段中。
  2. 標注為@MappedSuperclass的類不能再標注@Entity或@Table注解,也無需實現序列化接口.
    import lombok.Data;
    import javax.persistence.*;
    
    @Data
    @MappedSuperclass
    public abstract class BaseEntity {
        /**
         * 實體的id
         * 自增ID
         * @return
         */
        @Id
        @GeneratedValue(strategy= GenerationType.IDENTITY) 
        @Column(name = "id", unique = true, nullable = false)
        protected Long id;
    
        /**
         * 創建者
         */
        @Column(name = "create_by")
        protected Long createBy;
    
        /**
         * 創建時間
         */
        @Column(name = "create_time")
        private Date createTime;
    
        /**
         * 更新者
         */
        @Column(name = "update_by")
        protected Long updateBy;
    
        /**
         * 更新時間
         */
        @Column(name = "update_time")
        protected Date updateTime;
    }

     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM