Hibernate對映類繼承之每個帶有聯合的具體類一張表(每個子類各一張表,共用一個父類對映檔案)
pom.xml:
hibernate.cfg.xml:
父類,pojo/BillingDetails.java:
子類,pojo/BillingDetails .java:
子類,pojo/CreditCard .java:
對映檔案, pojo/BillingDetails.hbm.xml:
util/HibernateUtil.java:
util/Manager.java:
上例:
抽象的超類或者介面被宣告為abstract="true";否則超類的例項就需要一張單獨的表。
資料庫識別符號對映被該層中所有的具體類共用。CREDIT_CARD和BANK_ACCOUNT表都有一個ID主鍵列。現在資料庫識別符號屬性必須被所有的子類共享。因而你必須把它移到BillingDetails裡面,並且從CreditCard和BankAccount中把它移除。
超類(或者介面)的屬性在對映檔案中宣告,並被所有具體的類對映繼承。這樣避免了相同對映的複製。
具體的子類被對映到一張表,表繼承超類(或者介面)識別符號和其他的屬性對映。
注意,這裡也是兩張表:CREDIT_CARD和BANK_ACCOUNT表
CREDIT_CARD表:
ID
OWNER
NUMBER
EXP_MONTH
EXP_YEAR
BANK_ACCOUNT表:
ID
OWNER
ACCOUNT
BANKNAME
SWIFT
相關推薦
Hibernate對映類繼承之每個帶有聯合的具體類一張表(每個子類各一張表,共用一個父類對映檔案)
pom.xml: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocat
Hibernate對映類繼承之每個帶有隱式多型的具體類一張表(每個子類各一張表,有各自的對映檔案)
Hibernate對映類繼承之每個帶有隱式多型的具體類一張表(每個子類各一張表) 我們可以準確地給每個子類使用一張表。子類的所有屬性,包括被繼承的屬性,都可以被對映到這張表的列。如圖: CreditCard子類 -----&
Hibernate對映類繼承之每個類一張表(父子類都有各自的表,並共用一個對映檔案)
這種方案是把繼承關係表示為相關的外來鍵關聯。宣告持久化屬性的每個類/子類(包括抽象類甚至介面)都有它自己的表。不同於我們先前例子對映的每個具體類一張表的策略,此處的表僅僅包含了每個非繼承的屬性(由子類本身宣告的每個屬性)以及也是超類表的外來鍵的主鍵的列。 如例CreditCa
Hibernate對映類繼承之每個類層次結構一張表(父子類共用一張表,一個對映檔案)
整個類層次結構可以被對映到單張表。這張表把所有類的所有屬性的列都包括在層次結構中。由特定行表示的具體子類通過一個型別辨別標誌列的值進行識別。這個對映策略在效能和簡單性方面都勝出一籌。它是表示多型的最佳方法---多型和非多型的查詢都執行得很好---並且更易於手工實現。不用複雜的
多個類共同繼承一個父類
根據查詢funname不同,分類進入不同類,呼叫父類方法,先進入相同父類進行處理資料,判斷sessionid是否存在,如果不存在,呼叫子類方法處理,減少程式碼重複。 String funname=abc; if(funname.equalsIgnoreCase("abc")){ str=
求助:Python菱形繼承傳參問題,是否應該使用super?每一個父類都有各自引數該如何傳參?以及使用了super之後父類還能否獨自生成物件?
Python菱形繼承 傳參問題 類A, 類B,C均繼承於A 類D繼承與(B, C) 程式碼如下: class A: def __init__(self, a): print("Enter A") self.a =
如果一個父類有多個子類或者一個介面有多個實現的時候,Spring是如何判斷該呼叫哪個的呢?原始碼分析如下
在doResolveDependency的裡面進行呼叫determinePrimaryCandidate(matchingBeans, descriptor);方法判斷 determinePrimaryCandidate(matchingBeans, descr
(11)對映繼承關係二之每個類對應一張表(@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
這種策略支援雙向的一對多關聯,這裡不支援IDENTITY生成器策略。因為存在多型查詢,所以id在繼承關係的表中必須是唯一的。這就意味著不能用AUTO和IDENTITY生成器。 在mysql中,只能用生
hibernate單表之元件對映和繼承對映
表結構: Create table customer( id int primary key, name varchar(15), home_street varchar(255), home
Date類型之繼承方法
自增 cal 第一天 分別是 sda 技術分享 script TE may ECMAScript中的Date類型是在早期Java中的java.util.Date類型基礎上構建的。為此,Date類型使用自UTC(國際協調時間)1970年1月1日午夜零時開始經過的毫秒數來保存日
編程開發之--Java集合類繼承與實現必備知識
編程開發 next() int end long dha cos dHash IV 1、LinkedHashSet有序鏈式集合 舉例: long startTime=System.currentTimeMillis(); LinkedHashSet oprTypeSe
(8)hibernate四種繼承對映
一 一個類繼承體系一張表 1 物件模型(java類結構) 2 對映後據庫中的表 3 程式碼 Employee.java package com.learning; public cla
Hibernate教程04——類繼承(子類、父類連結表)
Hibernate教程04——類繼承(子類、父類連結表) 一、簡介 每個類都生成一張表,父類儲存公共資料,子類儲存自己獨有的資料,通過id進行關聯。 父類(Animal)和子類(Pig、Bird)均生
hibernate元件對映和繼承對映
元件對映 類的關係: wheel.javapublic class Wheel { private String brandname; private int size; }Car.java public class Car { private int id; pr
typescript學習之旅----建立物件 類 繼承
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device
2009-04-16 | Hibernate關聯對映 (繼承對映)
* 子類使用<subclass>標籤定義,在定義subclass的時候,需要注意如下幾點: Subclass標籤的name屬性是子類的全路徑名 在Subclass標籤中,用discriminator-value屬性來標明本子類的discriminator欄位(用來區分不同類的欄
c++之訪問從基類繼承的成員
1當派生類與基類中有相同成員時:若沒有特別限定,則通過派生類物件使用的是派生類的同名成員。如果要通過派生類物件訪問基類中被隱藏的同名成員,應使用基類名和作用域操作符“::”來限定#include <iostream> using namespace std; cl
第三十一節 C++ 繼承之如何在派生類中呼叫基類被覆蓋的函式成員(方法)
#include <iostream> using namespace std; /*有些基類的方法在派生類被覆蓋,但有時我們需要呼叫基類的方法。 * 這裡提供了兩種方式去呼叫基類被覆蓋的
Hibernate學習-10-元件對映和繼承對映
類的關係 組合關係 一個類中包含了另一個類。這兩個類就是組合關係 繼承關係 一個類繼承一個關係 元件對映 com.cx.component.Car package com.cx.component; /** * Created
Hibernate對映解析---繼承對映
現實世界中有很多種動物,比如:Pig(豬),Bird(鳥)等等,當我用面向物件的思想分析時,我們一般會將它們的共同部分抽取出來增加一個抽象類Animal(動物),這樣在編寫程式時Pig和Bird只需要繼承它們的父類Animal就可以省去很多重複的程式碼。Java程式碼中只需