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的表
  • 相关阅读:
    基于C#.NET C/S架构的生产看板管理系统软件开发框架平台
    VS.NET后端框架,C#.NET开发的服务器端开发框架
    开源.NET开发架构.NET管理系统框架-原创作品
    开源.NET开发架构 .NET管理系统框架
    基于MVC架构的WebApi服务端开发框架核心优势|C/S框架网原创作品
    基于C#.NET三层架构物流运输管理系统(TMS)-C/S框架网原创作品
    C#Winform+SQL开发的基于C/S架构大型ERP系统
    MES系统框架及MES开源框架|C/S框架网软著产品
    C#.NET程序升级框架之软件版本自动升级系统
    原创C/S应用程序开发平台与.NET快速开发框架
  • 原文地址:https://www.cnblogs.com/felix-/p/4332323.html
Copyright © 2011-2022 走看看