zoukankan      html  css  js  c++  java
  • @MappedSuperclass的用法

    1、定义实体类的父类

    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;
     }
     
    }
    2、实体类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; } }
    3、实体类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的表
  • 相关阅读:
    Ubuntu adb devices :???????????? no permissions (verify udev rules) 解决方法
    ubuntu 关闭显示器的命令
    ubuntu android studio kvm
    ubuntu 14.04版本更改文件夹背景色为草绿色
    ubuntu 创建桌面快捷方式
    Ubuntu 如何更改用户密码
    ubuntu 14.04 返回到经典桌面方法
    ubuntu 信使(iptux) 创建桌面快捷方式
    Eclipse failed to get the required ADT version number from the sdk
    Eclipse '<>' operator is not allowed for source level below 1.7
  • 原文地址:https://www.cnblogs.com/520playboy/p/7300594.html
Copyright © 2011-2022 走看看