緊急の接続と通常の接続の違いを冬眠します
関連する紹介と説明はコードにコメントされているため、参照できます。
パッケージcom.baidu.test; import java.util.arraylist; import java.util.linkedhashset; import java.util.list; import org.hibernate.query; import org.hibernate.session; import org.hibernate.session.hibernate.hibernate.transaction; org.hibernate.cfg.configuration; Import org.hibernate.service.serviceregistry; Import org.hibernate.service.serviceregistrybuilder; Import org.junit.after; Import org.junit.before; import org.junit.test; import com.beadu.reftun.eftun.partthoin.deftoin.depart com.baidu.leftjoin.employee .buildserviceregistry(); sessionfactory = configuration.buildsessionfactory(serviceregistry); session = sessionfactory.opensession(); transaction = session.begintransaction();}@public void destroy(){transaction.commit(); session.close(); sessionfactory.close(); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!!多くの~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~年/***** ****左外の結合:機能は条件を満たさない場合、条件を満たしていません* 1。 *2。リスト()メソッドは、返されたセットのエンティティオブジェクトへの参照を保存します。各部門のオブジェクトに関連付けられた従業員コレクションは初期化され、 *関連するエンティティオブジェクトをすべて保存します。 * 3。クエリの結果には重複要素が含まれている場合があり、重複要素をハッシュセットでフィルタリングできます * *特徴: *方法1:個別 *を使用 * string hql = "department d leftion d left join fetch d.emps"; *クエリquery = session.createquery(hql); * * list <deciption> depths = query.list(); * System.out.println(depts.size()); * *方法2 * string hql = "部門Dから左に巻きついてfetch d.emps"; *クエリquery = session.createquery(hql); * * list <Department> depts = query.list(); * * depts = new ArrayList <>(new linkedhashset(depts)); * System.out.println(depts.size()); * * for(department dept:depts){ * system.out.println(dept.getName() + " - " + dept.getEmps()。size()); *} * * */@public void testleftjoinfetch(){// string hql = "department d left jove from from Fetch d.emps"; // query query = session.createquery(hql); // list <department> depts = query.list();/ system.out.out.out.out.out.out.out.out.ut.size() " fetch d.emps "; query query = session.createquery(hql); list <pertaminal> depts = query.list(); system.out.println(depts.size()); depts = new arraylist <>(new linkedhashset(depts)); system.out.println(depts.size()); dept:depts){system.out.println(dept.getname() + " - " + dept.getemps()。size());}/** *左外結合: * 1。左の結合キーワードは左外の結合クエリを表します。 * 2。オブジェクト配列タイプは、リスト()メソッドによって返されたコレクションに保存されます * 3。構成ファイルに基づいて従業員コレクションの検索戦略を決定します。 * 4。リスト()メソッドが部門のオブジェクトのみを含めるようにコレクションを返したい場合、 * hqlクエリステートメントで選択されたキーワードを使用できます * *そのようなステートメントクエリの結果は複製されます。 * string hql = " *クエリquery = session.createquery(hql); * * list <object []> results = query.list(); * System.out.println(results.size()); * *重複排除: *個別の方法のみを使用して複製を削除する * *文字列hql = "部門Dから別個のdを選択します。 *クエリquery = session.createquery(hql); * * list <Department> depts = query.list(); * System.out.println(depts.size()); * * for(部門部:depts){ * system.out.println(dept.getName() + dept.getEmps()。size()); *} * */@public public void testleftjoin(){string hql = "部門Dから別個のdを選択します。 dept:depts){system.out.println(dept.getName() + dept.getEmps()。サイズ()。部門 *オブジェクトの従業員コレクションは初期化され、関連するすべての従業員オブジェクトを保存 * *内部接続: *内部結合キーワードは内部接続を表し、内側のキーワードも省略できます。 List()メソッドセットに保存されている各要素のクエリ結果のレコードは、オブジェクト配列タイプです。各要素はオブジェクトアレイタイプです * list()メソッドが部門オブジェクトのみを含めるようにコレクションを返したい場合は、HQLクエリステートメントの選択キーワードを使用できます。 session.createquery(hql); list <pertaminal> depts = query.list(); depts = new arraylist <>(new linkedhashset(depts)); system.out.println(depts.size()); );}} // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~か~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~!! public void testleftjoinfetch2(){string hql = "from Employee e left Joint from from from fetch e.dept"; query query = session.createquery(hql); list <employee> emps = query.list(); out.println(emps.size()); emp.getDept());}}}要約します
上記は、Hibernateの緊急接続と通常の接続の違いに関するこの記事の完全な内容です。私はそれが誰にでも役立つことを願っています。興味のある友達は引き続きこのサイトを参照できます:
Hibernateの緊急積み込みの問題に関する簡単な議論(複数の外部キー協会)
冬眠を追加、削除、変更、検索するための操作コードの詳細な説明
欠点がある場合は、それを指摘するためにメッセージを残してください。このサイトへのご支援をありがとうございました!