@MappedSuperclass的用法

來源:互聯網
上載者:User

標籤:

實體類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的表

@MappedSuperclass的用法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.