zoukankan      html  css  js  c++  java
  • @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的表
  • 相关阅读:
    视频会议保险行业解决方案
    如何选择适合企业的音视频解决方案?
    移动视频会议市场
    网络视频通讯服务器和平台发展
    移动互联网化的远程医疗
    智能家居行业的音视频技术
    Ubuntu15.04 安装Android开发环境
    AspNetPager 自定义html
    SqlDataReader对象的NextResult方法读取存储过程多个结果集
    一些原生云APP
  • 原文地址:https://www.cnblogs.com/felix-/p/4332323.html
Copyright © 2011-2022 走看看