• @MappedSuperclass的用法


    实体类baseEntity.java

    package com.rock.cft.hibernate;

    import java.util.Date;

    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.MappedSuperclass;

    //@MappedSuperclass 用在父类上面。当这个类肯定是父类时,加此标注。如果改成@Entity,则继承后,多个类继承,只会生成一个表,而不是多个继承,生成多个表
    @MappedSuperclass
    public abstract class BaseEntity {
      private Integer id;// 数据库主键
     private Date creationTime;//创建时间
     private Date modificationTime;//修改时间
     
     @Id
     @GeneratedValue(strategy = GenerationType.AUTO)
     public Integer getId() {
      return id;
     }
     public void setId(Integer id) {
      this.id = id;
     }
     public Date getCreationTime() {
      return creationTime;
     }
     public void setCreationTime(Date creationTime) {
      this.creationTime = creationTime;
     }
     public Date getModificationTime() {
      return modificationTime;
     }
     public void setModificationTime(Date modificationTime) {
      this.modificationTime = modificationTime;
     }

     
    }


    实体类Test_No1.java

    package com.rock.cft.test.model;

    import java.io.Serializable;
    import java.util.Date;

    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.Table;

    import com.rock.cft.hibernate.BaseEntity;

    @Entity
    @Table(name="test_no2")
    public class Test_No1 extends BaseEntity implements Serializable {
     

     private String name;
     private int age;

     

     public String getName() {
      return name;
     }
     public void setName(String name) {
      this.name = name;
     }
     public int getAge() {
      return age;
     }
     public void setAge(int age) {
      this.age = age;
     }
      

    }


    实体类Test_NO2.java

    package com.rock.cft.test.model;

    import java.io.Serializable;
    import java.util.Date;

    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.Table;

    import com.rock.cft.hibernate.BaseEntity;

    @Entity
    @Table(name="test_no2")
    public class Test_NO2 extends BaseEntity implements Serializable {
     
     
     private Date testBri;
     
     private String testAdr;
     
     public Date getTestBri() {
      return testBri;
     }
     public void setTestBri(Date testBri) {
      this.testBri = testBri;
     }
     public String getTestAdr() {
      return testAdr;
     }
     public void setTestAdr(String testAdr) {
      this.testAdr = testAdr;
     }
     
     


     
     

    }

     
    这样在生成表的时候只生成了:test_no1、test_no2两张表,而且两张表中都含有id、creationTime、modificationTime三个属性
     
    但是如果把@MappedSuperclass换成@Entity那么就会另外在生成一张baseEntity的表
  • 相关阅读:
    SpringBoot--实现Mybatis的多数据源切换和动态数据源切换
    云服务器查看外网IP地址方法
    Linux性能调优方法总结
    rsyslog配置
    Linux网络优化
    Reversoir sampling
    SQL 中的 NULL 小结
    Go by Example: HTTP Servers
    Linux 在 TOP 命令中切换内存的显示单位
    kubernetes informer 原理解析二
  • 原文地址:https://www.cnblogs.com/felix-/p/4332323.html
Copyright © 2020-2023  润新知