日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Hibernate中的Entity类之间的继承关系之一MappedSuperclass

發布時間:2025/6/17 编程问答 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Hibernate中的Entity类之间的继承关系之一MappedSuperclass 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在hibernate中,Entity類可以繼承Entity類或非Entity類。但是,關系數據庫表之間不存在繼承的關系。那么在Entity類之間的繼承關系,在數據庫表中如何表示呢?

Hibernate提供了4種兼容JPA的策略,解決Entity類的繼承與關系數據庫表的對應不匹配問題。這里介紹第一種MappedSuperclass。

在這種策略中,存在如下特征:

只在Entity類之間存在繼承關系,其中的父Entity類使用@javax.persistence.MappedSuperclass標注。

在關系數據庫中沒有父Entity類,一個具體子Entity類對應一個表,其中包含一個具體子Entity類的全部屬性(包含父Entity類的屬性)。

示例中,父Entity類定義如下:

@MappedSuperclass public static class Account {@Idprivate Long id;private String owner;private BigDecimal balance;private BigDecimal interestRate;public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getOwner() {return owner;}public void setOwner(String owner) {this.owner = owner;}public BigDecimal getBalance() {return balance;}public void setBalance(BigDecimal balance) {this.balance = balance;}public BigDecimal getInterestRate() {return interestRate;}public void setInterestRate(BigDecimal interestRate) {this.interestRate = interestRate;} }

  

子Entity類定義如下:

@Entity(name = "DebitAccount") public static class DebitAccount extends Account {private BigDecimal overdraftFee;public BigDecimal getOverdraftFee() {return overdraftFee;}public void setOverdraftFee(BigDecimal overdraftFee) {this.overdraftFee = overdraftFee;} }

  

另一個子Entity類定義如下:

@Entity(name = "CreditAccount") public static class CreditAccount extends Account {private BigDecimal creditLimit;public BigDecimal getCreditLimit() {return creditLimit;}public void setCreditLimit(BigDecimal creditLimit) {this.creditLimit = creditLimit;} }

  

數據庫表結構如下:

CREATE TABLE DebitAccount ( id BIGINT NOT NULL , balance NUMERIC(19, 2) , interestRate NUMERIC(19, 2) , owner VARCHAR(255) , overdraftFee NUMERIC(19, 2) , PRIMARY KEY ( id ) ) CREATE TABLE CreditAccount ( id BIGINT NOT NULL , balance NUMERIC(19, 2) , interestRate NUMERIC(19, 2) , owner VARCHAR(255) , creditLimit NUMERIC(19, 2) , PRIMARY KEY ( id ) )

  

via:http://blog.csdn.net/taiyangdao/article/details/51578386

?

轉載于:https://www.cnblogs.com/nihaorz/p/7447588.html

總結

以上是生活随笔為你收集整理的Hibernate中的Entity类之间的继承关系之一MappedSuperclass的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。