ホームページ Java &#&チュートリアル hibernate_association マッピング_1 対多

hibernate_association マッピング_1 対多

Jun 23, 2017 pm 04:28 PM
hibernate 1対多の 協会 マッピング

休止状態のマッピング関係

1 対多、多対 1、 1 対 1、 多対多。

一般的に使用されるのは、1 対多と多対 1 です。

データベースでは、主キーと外部キーの関連付けを追加することで 1 対多の関係を表現できます。 Hibernate では、一方の側で複数のパーティのコレクションを保持することによって実装されます。 "one" の一方の端にあります 要素は、"many" を保持する端のオブジェクトを表します。

以下は、追加、削除、変更、検索の「1 対多」デモを実装しています。1 つのクラスが複数の生徒に対応します。

最初に学生クラスを作成します Student

 1 package com.imooc.entity; 2  3 import java.io.Serializable; 4  5 public class Student implements Serializable { 6  7     private int sid; 8     private String sname; 9     private String sex;10     // 在多方定义一个一方的引用11     private Grade grade;12     13     public int getSid() {14         return sid;15     }16     public void setSid(int sid) {17         this.sid = sid;18     }19     public String getSname() {20         return sname;21     }22     public void setSname(String sname) {23         this.sname = sname;24     }25     public String getSex() {26         return sex;27     }28     public void setSex(String sex) {29         this.sex = sex;30     }31     public Grade getGrade() {32         return grade;33     }34     public void setGrade(Grade grade) {35         this.grade = grade;36     }37     38     public Student() {39         super();40     }41     42     public Student(String sname, String sex) {43         super();44         this.sname = sname;45         this.sex = sex;46     }47     48 }
ログイン後にコピー
コードを表示

クラスクラスを作成します Grade

 1 package com.imooc.entity; 2  3 import java.io.Serializable; 4 import java.util.HashSet; 5 import java.util.Set; 6  7  8 public class Grade implements Serializable { 9 10     private int gid;11     private String gname;12     private String gdesc;13     private Set<Student> students = new HashSet<Student>();14     15     public int getGid() {16         return gid;17     }18     public void setGid(int gid) {19         this.gid = gid;20     }21     public String getGname() {22         return gname;23     }24     public void setGname(String gname) {25         this.gname = gname;26     }27     public String getGdesc() {28         return gdesc;29     }30     public void setGdesc(String gdesc) {31         this.gdesc = gdesc;32     }33     public Set<Student> getStudents() {34         return students;35     }36     public void setStudents(Set<Student> students) {37         this.students = students;38     }39     40     public Grade() {41         super();42     }43     44     public Grade(int gid, String gname, String gdesc) {45         super();46         this.gid = gid;47         this.gname = gname;48         this.gdesc = gdesc;49     }50     51     public Grade(String gname, String gdesc) {52         super();53         this.gname = gname;54         this.gdesc = gdesc;55     }56 }<span class="cnblogs_code_collapse">見るコード</span><p>学生クラスのマッピングファイルStudent.hbm.xmlを作成します。 <span   style="max-width:90%"></span></p>
<pre class="brush:php;toolbar:false"> 1 <?xml version="1.0"?> 2 <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 3 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 4 <!-- Generated 2017-6-1 14:49:09 by Hibernate Tools 3.5.0.Final --> 5 <hibernate-mapping> 6     <class name="com.imooc.entity.Student" table="STUDENT"> 7         <id name="sid" type="int"> 8             <column name="SID" /> 9             <generator class="increment" />10         </id>11         <property name="sname" type="java.lang.String">12             <column name="SNAME" />13         </property>14         <property name="sex" type="java.lang.String">15             <column name="SEX" />16         </property>17     </class>18 </hibernate-mapping>
ログイン後にコピー

コードを表示
休止状態設定ファイルを作成

 1 <?xml version="1.0"?> 2 <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 3 "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 4 <!-- Generated 2017-6-1 14:49:09 by Hibernate Tools 3.5.0.Final --> 5 <hibernate-mapping> 6     <class name="com.imooc.entity.Grade" table="GRADE"> 7         <id name="gid" type="int"> 8             <column name="GID" /> 9             <generator class="increment" />10         </id>11         <property name="gname" type="java.lang.String">12             <column name="GNAME" length="20" not-null="true" />13         </property>14         <property name="gdesc" type="java.lang.String">15             <column name="GDESC" />16         </property>17         <!-- 指定关联的外键列 -->18         <set name="students" table="STUDENT">19             <key>20                 <column name="GID" />21             </key>22             <one-to-many class="com.imooc.entity.Student" />23         </set>24     </class>25 </hibernate-mapping>
ログイン後にコピー
コードを表示
追加、削除、変更用のテストファイルを作成

りー

コードを表示

以上がhibernate_association マッピング_1 対多の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

MyBatis の 1 対多のクエリ構成の詳細な説明: 関連する一般的なクエリの問題の解決 MyBatis の 1 対多のクエリ構成の詳細な説明: 関連する一般的なクエリの問題の解決 Feb 22, 2024 pm 02:18 PM

MyBatis の 1 対多のクエリ構成の詳細な説明: 一般的な関連クエリの問題を解決するには、特定のコード例が必要です。実際の開発作業では、マスター エンティティ オブジェクトとそれに関連付けられた複数のスレーブ エンティティ オブジェクトをクエリする必要がある状況によく遭遇します。 。 MyBatis では、1 対多のクエリが一般的なデータベース関連付けクエリであり、適切な設定を行うことで、関連付けられたオブジェクトのクエリ、表示、操作を簡単に実現できます。この記事では、MyBatis での 1 対多のクエリの構成方法と、関連するクエリに関する一般的な問題の解決方法を紹介します。

SpringBoot プロジェクトに Hibernate を統合する方法 SpringBoot プロジェクトに Hibernate を統合する方法 May 18, 2023 am 09:49 AM

SpringBoot プロジェクトへの Hibernate の統合 はじめに Hibernate は、Java オブジェクトをデータベース テーブルにマップして永続化操作を容易にする、人気のある ORM (オブジェクト リレーショナル マッピング) フレームワークです。 SpringBoot プロジェクトでは、Hibernate を統合すると、データベース操作をより簡単に実行できるようになります。この記事では、SpringBoot プロジェクトに Hibernate を統合する方法と、対応する例を示します。 1.依存関係の導入pom.xml ファイルに次の依存関係を導入します: org.springframework.bootspring-boot-starter-data-jpam

Java JPA の面接で選ばれた質問: 永続化フレームワークの習熟度をテストする Java JPA の面接で選ばれた質問: 永続化フレームワークの習熟度をテストする Feb 19, 2024 pm 09:12 PM

JPAとは何ですか? JDBC との違いは何ですか? JPA (JavaPersistence API) は、オブジェクト リレーショナル マッピング (ORM) の標準インターフェイスです。これにより、Java 開発者は、データベースに対して SQL クエリを直接記述することなく、使い慣れた Java オブジェクトを使用してデータベースを操作できるようになります。 JDBC (JavaDatabaseConnectivity) は、データベースに接続するための Java の標準 API であり、開発者は SQL ステートメントを使用してデータベースを操作する必要があります。 JPA は JDBC をカプセル化し、オブジェクト リレーショナル マッピングのためのより便利で高レベルの API を提供し、データ アクセス操作を簡素化します。 JPA ではエンティティとは何ですか?実在物

Java エラー: Hibernate エラー、処理方法と回避方法 Java エラー: Hibernate エラー、処理方法と回避方法 Jun 25, 2023 am 09:09 AM

Java は、ソフトウェア開発の分野で広く使用されているオブジェクト指向プログラミング言語です。 Hibernate は、Java オブジェクトの永続性を管理するためのシンプルかつ効率的な方法を提供する、人気のある Java 永続性フレームワークです。ただし、開発プロセス中に Hibernate エラーが発生することが多く、これらのエラーによりプログラムが異常終了したり、不安定になったりする可能性があります。 Hibernate エラーを処理および回避する方法は、Java 開発者が習得しなければならないスキルとなっています。この記事では一般的な Hib を紹介します。

MySQL の外部キーと主キーを自動的に関連付けるにはどうすればよいですか? MySQL の外部キーと主キーを自動的に関連付けるにはどうすればよいですか? Mar 15, 2024 pm 12:54 PM

MySQL の外部キーと主キーを自動的に関連付けるにはどうすればよいですか? MySQL データベースでは、外部キーと主キーは非常に重要な概念であり、異なるテーブル間の関係を確立し、データの整合性と一貫性を確保するのに役立ちます。実際のアプリケーションプロセスでは、データの不整合を避けるために、外部キーを対応する主キーに自動的に関連付けることが必要になることがよくあります。以下に、具体的なコード例を通してこの機能の実装方法を紹介します。まず、2 つのテーブルを作成する必要があります。1 つはマスター テーブル、もう 1 つはスレーブ テーブルです。メインテーブルに作成

Java Hibernate における 1 対多および多対多の関係のマッピング方法は何ですか? Java Hibernate における 1 対多および多対多の関係のマッピング方法は何ですか? May 27, 2023 pm 05:06 PM

Hibernate の 1 対多および多対多 Hibernate は、Java アプリケーションとリレーショナル データベース間のデータ アクセスを簡素化する優れた ORM フレームワークです。 Hibernate では、1 対多および多対多の関係を使用して、複雑なデータ モデルを処理できます。 Hibernate の 1 対多 Hibernate では、1 対多の関係は、1 つのエンティティ クラスが他の複数のエンティティ クラスに対応することを意味します。たとえば、1 つの注文は複数の注文アイテム (OrderItem) に対応することができ、1 人のユーザー (User) は複数の注文 (Order) に対応することができます。 Hibernate で 1 対多の関係を実装するには、エンティティ クラスでコレクション属性を定義して格納する必要があります。

Hibernateとmybatisの違いは何ですか Hibernateとmybatisの違いは何ですか Jan 03, 2024 pm 03:35 PM

Hibernate と mybatis の違い: 1. 実装方法、2. パフォーマンス、3. オブジェクト管理の比較、4. キャッシュのメカニズム。詳細な紹介: 1. 実装方法、Hibernate はオブジェクトをデータベース テーブルにマップする完全なオブジェクト/リレーショナル マッピング ソリューションですが、MyBatis では開発者が SQL ステートメントと ResultMap を手動で記述する必要があります; 2. パフォーマンス、開発速度の点で Hibernate は可能です。 MyBatis は、Hibernate が DAO 層などを簡素化するためです。

C言語の評価、優先順位、関連付けとは何ですか? C言語の評価、優先順位、関連付けとは何ですか? Sep 03, 2023 pm 09:49 PM

「C」コンパイラは、優先順位と結合規則に従って式を評価します。式に異なる優先順位の演算子が含まれている場合は、優先順位ルールが考慮されます。ここでは、「*」の方が「-」や「=」よりも優先順位が高いため、10*2 が最初に評価されます。式に同じ優先順位が含まれている場合、結合規則が考慮されます。つまり、左から右へ (または右から左へ) )。

See all articles