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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

@Inheritance

發布時間:2024/1/18 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 @Inheritance 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Hibernate繼承策略總共有三種,一種是共用一張表;一種是每個類一張表,表里面儲存子類的信息和父類的信息;還有一種是通過表連接的方式,每個類都有一張表,但是子類對應的表只保存自己的信息,父類對應的表保存父類的信息,它們之間通過子類表和父類表的關聯來獲取所有的信息。

第一種方式,即共用一張表:

Java代碼 ?
  • @Entity??
  • @Inheritance(strategy=InheritanceType.SINGLE_TABLE)??
  • @DiscriminatorColumn(name="discriminator",?discriminatorType=DiscriminatorType.STRING)//表示區分不同的對象的字段名??
  • @DiscriminatorValue("person")//用來表示該對象是何種對象的,即區分器??
  • public?class?Parent?{??
  • ????private?int?id;??
  • ????private?String?name;??
  • ??????
  • ????@Id??
  • ????@GeneratedValue??
  • ????public?int?getId()?{??
  • ????????return?id;??
  • ????}??
  • ????public?void?setId(int?id)?{??
  • ????????this.id?=?id;??
  • ????}??
  • ????public?String?getName()?{??
  • ????????return?name;??
  • ????}??
  • ????public?void?setName(String?name)?{??
  • ????????this.name?=?name;??
  • ????}??
  • ??
  • }??
  • ??
  • @Entity??
  • @DiscriminatorValue("child1")??
  • public?class?Child1?extends?Parent?{??
  • ????private?String?email;??
  • ??
  • ????public?String?getEmail()?{??
  • ????????return?title;??
  • ????}??
  • ??
  • ????public?void?setEmail(String?email)?{??
  • ????????this.email?=?email;??
  • ????}??
  • ??
  • ??????
  • }??
  • ??
  • ??
  • ??
  • @Entity??
  • @DiscriminatorValue("child2")??
  • public?class?Child2?extends?Parent?{??
  • ??????
  • ????private?String?address;??
  • ??
  • ????public?String?getAddress()?{??
  • ????????return?score;??
  • ????}??
  • ??
  • ????public?void?setAddress(String?address)?{??
  • ????????this.address?=?address;??
  • ????}??
  • ??????
  • }???
  • ? ? ? ? 這種情況父類和所有子類的所有信息都保存在同一張表里面,通過我們指定的@DiscriminatorColumn對應的@DiscriminatorValue來區別不同的類。 當沒有指定@DiscriminatorValue的時候將使用全類名來作為DiscriminatorValue。

    ?

    ?

    第二種策略是每個類一張表,保存所有信息:

    Java代碼 ?
  • @Entity??
  • @Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)??
  • @TableGenerator(????????//一個類一張表,最重要的是要保證它們的id由一個生成器產生,@TableGenerator就是為了控制這個的??
  • ????????name="t_gen",??
  • ????????table="t_gen_table",??
  • ????????pkColumnName="t_pk",??
  • ????????valueColumnName="t_value",??
  • ????????pkColumnValue="person_pk",??
  • ????????initialValue=1,??
  • ????????allocationSize=1??
  • ????????)??
  • public?class?Parent?{??
  • ????private?int?id;??
  • ????private?String?name;??
  • ??????
  • ????@Id??
  • ????@GeneratedValue(generator="t_gen",?strategy=GenerationType.TABLE)//這個就是用表生成器生成的,用同一個生成器就可以控制它們的id不重復??
  • ????public?int?getId()?{??
  • ????????return?id;??
  • ????}??
  • ????public?void?setId(int?id)?{??
  • ????????this.id?=?id;??
  • ????}??
  • ????public?String?getName()?{??
  • ????????return?name;??
  • ????}??
  • ????public?void?setName(String?name)?{??
  • ????????this.name?=?name;??
  • ????}??
  • ??
  • }??
  • ??
  • ??
  • @Entity??
  • public?class?Child2?extends?Parent?{??
  • ??????
  • ????private?String?address;??
  • ??
  • ????public?String?getAddress()?{??
  • ????????return?score;??
  • ????}??
  • ??
  • ????public?void?setAddress(String?address)?{??
  • ????????this.address?=?address;??
  • ????}??
  • ??????
  • }??
  • ??
  • ??
  • @Entity??
  • public?class?Child1?extends?Parent?{??
  • ????private?String?email;??
  • ??
  • ????public?String?getEmail()?{??
  • ????????return?title;??
  • ????}??
  • ??
  • ????public?void?setEmail(String?email)?{??
  • ????????this.email?=?email;??
  • ????}??
  • ??
  • ??????
  • }??
  • ?

    ?

    弟三種方式是采用表連接的方式:

    Java代碼 ?
  • @Entity??
  • @Inheritance(strategy=InheritanceType.JOINED)??
  • ??
  • public?class?Parent?{??
  • ????private?int?id;??
  • ????private?String?name;??
  • ??????
  • ????@Id??
  • ????@GeneratedValue??
  • ????public?int?getId()?{??
  • ????????return?id;??
  • ????}??
  • ????public?void?setId(int?id)?{??
  • ????????this.id?=?id;??
  • ????}??
  • ????public?String?getName()?{??
  • ????????return?name;??
  • ????}??
  • ????public?void?setName(String?name)?{??
  • ????????this.name?=?name;??
  • ????}??
  • ??
  • }??
  • ??
  • @Entity??
  • public?class?Child2?extends?Parent?{??
  • ??????
  • ????private?String?address;??
  • ??
  • ????public?String?getAddress()?{??
  • ????????return?score;??
  • ????}??
  • ??
  • ????public?void?setAddress(String?address)?{??
  • ????????this.address?=?address;??
  • ????}??
  • ??????
  • }??
  • ??
  • ??
  • @Entity??
  • public?class?Child1?extends?Parent?{??
  • ????private?String?email;??
  • ??
  • ????public?String?getEmail()?{??
  • ????????return?title;??
  • ????}??
  • ??
  • ????public?void?setEmail(String?email)?{??
  • ????????this.email?=?email;??
  • ????}??
  • ??
  • ??????
  • }??
  • ? ? ? ? ?采用表連接的情況,還是每個類擁有自己的一張表,只是子類對應的表只保存子類的信息,其父類的信息由父類的表保存。當需要獲取子類的完整信息時通過表連接的方式連接子類的表和父類的表獲取對應信息??梢栽谧宇惖谋砩蠘俗?#64;PrimaryKeyJoinColumn(name="foreignKeyName")指明子類表相對于父類表外鍵的名稱。

    # 歡迎使用Markdown編輯器

    你好! 這是你第一次使用 Markdown編輯器 所展示的歡迎頁。如果你想學習如何使用Markdown編輯器, 可以仔細閱讀這篇文章,了解一下Markdown的基本語法知識。

    新的改變

    我們對Markdown編輯器進行了一些功能拓展與語法支持,除了標準的Markdown編輯器功能,我們增加了如下幾點新功能,幫助你用它寫博客:

  • 全新的界面設計 ,將會帶來全新的寫作體驗;
  • 在創作中心設置你喜愛的代碼高亮樣式,Markdown 將代碼片顯示選擇的高亮樣式 進行展示;
  • 增加了 圖片拖拽 功能,你可以將本地的圖片直接拖拽到編輯區域直接展示;
  • 全新的 KaTeX數學公式 語法;
  • 增加了支持甘特圖的mermaid語法1 功能;
  • 增加了 多屏幕編輯 Markdown文章功能;
  • 增加了 焦點寫作模式、預覽模式、簡潔寫作模式、左右區域同步滾輪設置 等功能,功能按鈕位于編輯區域與預覽區域中間;
  • 增加了 檢查列表 功能。
  • 功能快捷鍵

    撤銷:Ctrl/Command + Z
    重做:Ctrl/Command + Y
    加粗:Ctrl/Command + B
    斜體:Ctrl/Command + I
    標題:Ctrl/Command + Shift + H
    無序列表:Ctrl/Command + Shift + U
    有序列表:Ctrl/Command + Shift + O
    檢查列表:Ctrl/Command + Shift + C
    插入代碼:Ctrl/Command + Shift + K
    插入鏈接:Ctrl/Command + Shift + L
    插入圖片:Ctrl/Command + Shift + G

    合理的創建標題,有助于目錄的生成

    直接輸入1次#,并按下space后,將生成1級標題。
    輸入2次#,并按下space后,將生成2級標題。
    以此類推,我們支持6級標題。有助于使用TOC語法后生成一個完美的目錄。

    如何改變文本的樣式

    強調文本 強調文本

    加粗文本 加粗文本

    標記文本

    刪除文本

    引用文本

    H2O is是液體。

    210 運算結果是 1024.

    插入鏈接與圖片

    鏈接: link.

    圖片:

    帶尺寸的圖片:

    居中的圖片:

    居中并且帶尺寸的圖片:

    當然,我們為了讓用戶更加便捷,我們增加了圖片拖拽功能。

    如何插入一段漂亮的代碼片

    去博客設置頁面,選擇一款你喜歡的代碼片高亮樣式,下面展示同樣高亮的 代碼片.

    // An highlighted block var foo = 'bar';

    生成一個適合你的列表

    • 項目
      • 項目
        • 項目
  • 項目1
  • 項目2
  • 項目3
    • 計劃任務
    • 完成任務

    創建一個表格

    一個簡單的表格是這么創建的:

    項目Value
    電腦$1600
    手機$12
    導管$1

    設定內容居中、居左、居右

    使用:---------:居中
    使用:----------居左
    使用----------:居右

    第一列第二列第三列
    第一列文本居中第二列文本居右第三列文本居左

    SmartyPants

    SmartyPants將ASCII標點字符轉換為“智能”印刷標點HTML實體。例如:

    TYPEASCIIHTML
    Single backticks'Isn't this fun?'‘Isn’t this fun?’
    Quotes"Isn't this fun?"“Isn’t this fun?”
    Dashes-- is en-dash, --- is em-dash– is en-dash, — is em-dash

    創建一個自定義列表

    Markdown
    Text-to- HTML conversion tool
    Authors
    John
    Luke

    如何創建一個注腳

    一個具有注腳的文本。2

    注釋也是必不可少的

    Markdown將文本轉換為 HTML。

    KaTeX數學公式

    您可以使用渲染LaTeX數學表達式 KaTeX:

    Gamma公式展示 Γ ( n ) = ( n ? 1 ) ! ? n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n?1)!?nN 是通過歐拉積分

    Γ ( z ) = ∫ 0 ∞ t z ? 1 e ? t d t   . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=0?tz?1e?tdt.

    你可以找到更多關于的信息 LaTeX 數學表達式here.

    新的甘特圖功能,豐富你的文章

    Mon 06 Mon 13 Mon 20 已完成 進行中 計劃一 計劃二 現有任務 Adding GANTT diagram functionality to mermaid
    • 關于 甘特圖 語法,參考 這兒,

    UML 圖表

    可以使用UML圖表進行渲染。 Mermaid. 例如下面產生的一個序列圖::

    張三 李四 王五 你好!李四, 最近怎么樣? 你最近怎么樣,王五? 我很好,謝謝! 我很好,謝謝! 李四想了很長時間, 文字太長了 不適合放在一行. 打量著王五... 很好... 王五, 你怎么樣? 張三 李四 王五

    這將產生一個流程圖。:

    鏈接 長方形 圓 圓角長方形 菱形
    • 關于 Mermaid 語法,參考 這兒,

    FLowchart流程圖

    我們依舊會支持flowchart的流程圖:

    Created with Rapha?l 2.2.0 開始 我的操作 確認? 結束 yes no
    • 關于 Flowchart流程圖 語法,參考 這兒.

    導出與導入

    導出

    如果你想嘗試使用此編輯器, 你可以在此篇文章任意編輯。當你完成了一篇文章的寫作, 在上方工具欄找到 文章導出 ,生成一個.md文件或者.html文件進行本地保存。

    導入

    如果你想加載一篇你寫過的.md文件或者.html文件,在上方工具欄可以選擇導入功能進行對應擴展名的文件導入,
    繼續你的創作。


  • mermaid語法說明 ??

  • 注腳的解釋 ??

  • 總結

    以上是生活随笔為你收集整理的@Inheritance的全部內容,希望文章能夠幫你解決所遇到的問題。

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