hibernate樹

1. 樹實現通過pid進行指向上一層來實現,實體類代碼如下

package com.test.model;import java.util.HashSet;
import java.util.Set;import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;@Entity
public class Org {private int id;private String name;private Set<Org> children = new HashSet<Org>();private Org parent;@Id@GeneratedValuepublic 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;}@OneToMany(mappedBy="parent", cascade=CascadeType.ALL, fetch=FetchType.EAGER)public Set<Org> getChildren() {return children;}public void setChildren(Set<Org> children) {this.children = children;}@ManyToOne@JoinColumn(name="parent_Id")public Org getParent() {return parent;}public void setParent(Org parent) {this.parent = parent;}
}

2.測試類代碼如下,? ?查詢時可通過遞歸進行查詢

package com.test.test;import org.hibernate.classic.Session;import com.test.Util.HibernateUtil;
import com.test.model.Org;public class StudentManager {public static void main(String[] args) {new StudentManager().testSave();}public void testSave() {Session session = HibernateUtil.getSessionFactory().getCurrentSession();session.beginTransaction();Org o = new Org();o.setName("總公司");Org o1 = new Org();o1.setName("分公司1");Org o2 = new Org();o2.setName("分公司2");Org o21 = new Org();o21.setName("分公司2_1");Org o22 = new Org();o22.setName("分公司2_2");o.getChildren().add(o1);o.getChildren().add(o2);o1.setParent(o);o2.setParent(o);o2.getChildren().add(o21);o2.getChildren().add(o22);o21.setParent(o2);o22.setParent(o2);session.save(o);testLoad();session.getTransaction().commit();}public void testLoad() {Session session = HibernateUtil.getSessionFactory().getCurrentSession();session.beginTransaction();Org org = (Org)session.load(Org.class, 1);print(org, 0);}private void print(Org org, int level) {String str = "----";for(int i=0; i<level; i++) {System.out.print(str);}System.out.println(org.getName());level++;for(Org o:org.getChildren()) {print(o, level);}}
}    

?

轉載于:https://www.cnblogs.com/redhat0019/p/8480051.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/252304.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/252304.shtml
英文地址,請注明出處:http://en.pswp.cn/news/252304.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Sleep() sleep() usleep()

Linux: sleep(n); //停留n秒 usleep(n); //停留n微秒 Windows: Sleep(n); //停留n毫秒

vue的鼠標移入和移出

vue的鼠標移入和移出 需求&#xff08;鼠標到預約二維碼顯示&#xff0c;預約添加背景色&#xff09; 實現 <!--html部分--> <ul class"person_list"> //五個li標簽皆是循環渲染出來的<li class"item" v-for"(n,index) in 5">…

聊聊flink的MemoryPool

為什么80%的碼農都做不了架構師&#xff1f;>>> 序 本文主要研究一下flink的MemoryPool MemoryPool flink-runtime_2.11-1.7.2-sources.jar!/org/apache/flink/runtime/memory/MemoryManager.java abstract static class MemoryPool {abstract int getNumberOfAvai…

day4

ti很簡單&#xff0c;但是把變量弄錯了&#xff0c;寫了不到半小時&#xff0c;調了一小時&#xff0c;導致t3功虧一簣。 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<queue> #include<vector> …

C++中public protected private的區別

1. 不考慮繼承關系時 本類方法使用外部使用private是否protected是否public是是 2. 有繼承關系時 子類方法使用外部private否否protected是否public是是 結論&#xff1a;基于以上兩個表格可以知道&#xff0c;C中的protected處于private和public中間&#xff0c; protected 既…

表達式求值

表達式求值問題 ①問題描述 表達式是數據運算的基本形式。人們的書寫習慣是中綴式&#xff0c;如&#xff1a;1122*(7-4)/3。中綴式的計算按運算符的優先級及括號優先的原則&#xff0c;相同級別從左到右進行計算。表達式還有后綴式&#xff08;如&#xff1a;22 7 4 - * 3 / 1…

PHP_SELF變量解析和重復路徑解決

最近升級PHP到PHP7版本&#xff0c;并重新部署了新的Nginx&#xff0c;啟動的時候發現了一個問題&#xff0c;全局變量$_SERVER[PHP_SELF]的值發生了改變&#xff0c;從而影響到代碼的功能。因此我們來了解下$_SERVER全局變量中的PHP_SELF/PATH_INFO/SCRIPT_NAME等參數以及其關…

pep 8 規范的一些記錄

一、pep8起源 龜叔創立Python的初衷里就有創立一個容易閱讀的編程語言&#xff0c;所以親自操刀寫了pep8 代碼規范&#xff0c;每個項目開始前都要有一個共識&#xff0c;就是自己的代碼規范&#xff0c;pep8 就是一個很好的范本。 二、官網鏈接 https://www.python.org/dev/pe…

C++中的類加多線程代碼修煉之二

背景&#xff1a;在上一篇文章中 寫到了我第一次使用C使用多個類多個線程進行編程&#xff0c;由于是第一接手“這么大一個工程”&#xff0c;所以還是要有個參照物的&#xff0c;由于我呢之前好幾年一直在看的一個C代碼工程就是ORB-SLAM了&#xff0c;這個工程使用C語言&#…

Primer c++ 第5版pdf

下載地址&#xff1a;網盤下載 內容簡介 這本久負盛名的 C經典教程&#xff0c;時隔八年之久&#xff0c;終迎來史無前例的重大升級。除令全球無數程序員從中受益&#xff0c;甚至為之迷醉的——C 大師 Stanley B. Lippman 的豐富實踐經驗&#xff0c;C標準委員會原負責…

eclispe修改project Explorer字體大小

切換到Eclipse目錄下: D:\JAVA\spring-tool-suite\sts-4.0.2.RELEASE\plugins\org.eclipse.ui.themes_1.2.200.v20180828-1350 找到下面的這個css文件 打開找到下面的位置在下面添加代碼:CTabFolder Tree{font-size: 15px;} 復制代碼重啟Eclipse,就可以看到效果 修改前 修改后…

3-4 第三天 Generator生成器

Generator是ES6里面的新增規范&#xff0c;ES6其實就是ES2015。ES5、ES6、ES7這些術語大家上網一查就都明白了。JavaScript是一個范程&#xff0c;就是我們說的JS。ES就是ECMA Script&#xff0c;是JavaScript標準的書面說法。ES4、5、6、7其實是JS這門語言發展中的不同的版本。…

神奇的事情--長見識了

背景&#xff1a;我的這個工程里有多個命名空間&#xff0c;之所以是這樣是因為&#xff0c;有一個跟蹤算法他本身有幾個namespace,然后我在他的基礎上進行整合代碼&#xff0c;將其作為一個功能接口&#xff0c;供其他函數調用&#xff0c;我在整合代碼時&#xff0c;將我新加…

箭頭函數的使用用法(一)

1 //箭頭函數的一個好處是簡化回調函數2 //箭頭函數沒有參數&#xff0c;就使用圓刮號代表參數部分&#xff1b;3 var f () >5;4 console.log(f());5 //兩個參數的情況&#xff0c;代碼塊只有一條語句&#xff0c;可以省略{}6 var f (a,b)> console.log(ab);7 f(1,3);8…

LinkedList中查詢(contains)和刪除(remove)源碼分析

一、contains源碼分析 本文分析雙向鏈表LinkedList的查詢操作源碼實現。jdk中源程序中&#xff0c;LinkedList的查詢操作&#xff0c;通過contains(Object o)函數實現。具體見下面兩部分程序&#xff1a;① public boolean contains(Object o) {return indexOf(o) ! -1; } ② p…

分塊入門

我貌似和所有的數據結構都有些誤會。。。。。。 在處理一些修改查詢問題的時候&#xff0c;我們可以利用分治的思想&#xff0c;比如說把一個線性的數據不斷分成一棵二叉樹&#xff0c;也就是我們所說的線段樹&#xff0c;這樣我們就可以在logn的時限里做到修改和查詢。同理我們…

開始使用gitlab

不得不說&#xff0c;我真不是一個合格的程序猿&#xff0c;工作馬上兩年了&#xff0c;github和gitlab用的一點也不熟練&#xff0c;每次興致來了就搞幾下&#xff0c;可是每次都淺嘗輒止&#xff0c;不求甚解&#xff0c;時間一長&#xff0c;上一次練習的步驟就都記不起來了…

Spark 2.2.0 文檔中文版 Collaborative Filtering 協同過濾 JAVA推薦系統

協同過濾常用于推薦系統&#xff0c;這項技術旨在填補 丟失的user-item關聯矩陣 的條目&#xff0c;spark.ml目前支持基于模型的協同過濾&#xff08;用一些丟失條目的潛在因素在描述用戶和產品&#xff09;。spark.ml使用ALS&#xff08;交替最小二乘法&#xff09;去學習這些…

淘寶top平臺調用接口響應時間優化

我的專欄地址&#xff1a;我的segmentfault,歡迎瀏覽 一、背景 調用top接口的響應時間長&#xff08;160ms左右&#xff09;&#xff0c;超時和連接異常頻繁發生。導致消息組件消費工程的tps遇到瓶頸&#xff08;單實例單消息隊列250tps&#xff09;&#xff0c;只能通過增加實…

樹上倍增一些理解和寫法

樹上倍增可以比較容易求得i節點的第k個父親&#xff0c;我們定義一個二維數組fa[i][j]代表節點i的第2^j個父親&#xff0c;關于有什么用我們等會再說&#xff0c;現在先學會怎么去求這個fa數組 我們可以通過從根節點開始一遍dfs求得所有fa數組&#xff0c;首先我們發現fa數組有…