まず、1の多くの
生徒や学生のクラスは生徒のクラスの複数に対応する、多対グレードを実装します。
Student.javaエンティティクラスは、クラス属性がマッピングされています。
インポートしたjava.io.Serializable;
パブリッククラス学生シリアライズ{実装
パブリック学生(){
}
公共学生(文字列SNAME、ストリング性別、列アドレス){
this.sname = SNAME。
this.sex =セックス。
this.address =アドレス。
}
公共学生(文字列SNAME、ストリング性別、列アドレス、グレードグレード){
this.sname = SNAME。
this.sex =セックス。
this.address =アドレス。
this.grade =グレード;
}
プライベートint型のSID。
プライベート文字列SNAME。
プライベート文字列のセックス。
アドレスプライベート文字列;
//一方向多対:のいずれかのパッケージのうちの一つでエンティティ・オブジェクト
のプライベートグレードグレード;
GETSIDパブリックINT(){
SIDを返す;
}
公共ボイドがsetsid(SIDをINT){
this.sid = SID ;
}
パブリック文字列getSname(){
戻りSNAME;
}
公共ボイドsetSname(文字列SNAME){
this.sname SNAME =;
}
パブリック文字列getSex(){
セックスを返す;
}
公共ボイドsetSex(文字列セックス){
this.sexセックス= ;
}
パブリック文字列のgetAddress(){
リターンアドレス。
}
公共ボイドsetAddress(列アドレス){
this.address =アドレス。
}
公共グレードgetGrade(){
グレードを返します。
}
公共ボイドsetGrade(グレードグレード){
this.grade =グレード。
}
@Override
パブリック文字列のtoString(){
リターン"学生[SID =" + SID + "SNAME =" + SNAME + "性別=" +性別
+ "アドレス=" +アドレス+ "]"。
}
}
Student.hbm.xml学生マッピングファイル、および多くの関係のクラスを追加
<!DOCTYPE休止状態マッピングPUBLIC " - //休止/休止状態のマッピングDTD 3.0 // EN"
「http://www.hibernate.org/dtd/hibernate-mapping-3.0。 DTD ">
の<hibernateマッピング>
< -实体映射文件:!将实体对象映射为数据库中的字段- >
<クラス名=" com.lxit.entity.Student」表= "学生">
<id名= "SID"欄= "SID">
<ジェネレータクラス= "天然"> </ジェネレータ>
</ ID>
<プロパティ名= "SNAME"カラム= "SNAME"タイプ= "java.lang.Stringで"> </プロパティ>
<プロパティ名=「性別」欄=「セックス」> < /プロパティ>
<プロパティ名= "アドレス"欄= "アドレス"> </プロパティ>
<! - 1つのマッピング関係を実現します- >
<多対一名=「グレード」クラス=「com.lxit.entity.Grade」欄=「GID」怠惰=「偽」> </多対1>
</クラス>
</休止状態マッピング>
第二に、多くの
クラスと学生対多のマッピングされたGrade.javaエンティティクラスは、生徒のコレクションが含まれています。
インポートしたjava.io.Serializable;
輸入はjava.util.HashSet。
輸入java.util.Set;
パブリッククラスグレードシリアライズ{実装
パブリックグレード(){
}
公共グレード(文字列gnameという)を{
this.gname = gnameという。
}
//在一方添加多方的集合
公共の設定<学生>学生=新しいHashSetの<学生>();
プライベートint型のGID。
プライベート文字列gnameは、
公共INT GETGID(){
戻りGID。
}
公共ボイドのsetgid(INTのGID){
this.gid = GID。
}
パブリック文字列getGname(){
gnameはを返します。
}
公共ボイドsetGname(文字列gnameは){
this.gname = gnameという。
}
公共の設定<学生> getStudents(){
生徒を返します。
}
パブリック無効setStudents(セット<学生>学生){
this.students =学生。
}
}
グレードマッピングファイル
<!DOCTYPE休止状態マッピングPUBLIC " - //休止/休止状態のマッピングDTD 3.0 // EN"
「http://www.hibernate.org/dtd/hibernate-mapping-3.0。 DTD ">
の<hibernateマッピング>
< -实体映射文件:!将实体对象映射为数据库中的字段- >
<クラス名=" com.lxit.entity.Grade」表= "グレード">
<id名= "GID"欄= "GID">
<ジェネレータクラス= "天然"> </ジェネレータ>
</ ID>
<プロパティ名= "gnameは"タイプ= "java.lang.Stringで">
<カラム名= "gnameは"長さ= "20"> </列>
< /プロパティ>
<! -
逆:友人は、それが外部キーを維持するために、当事者の責任を維持すると述べ、デフォルトはfalseです
カスケード:あなたは、クラスを保存するとき、学生が対応するクラスに保存され、カスケード効果を示します
- >
<セット名= "学生"表= "学生"カスケード= "すべて">
<キー列= "GID"> </ key>を
<1対多のクラス= "com.lxit.entity.Student" />
</設定>
</クラス>
</休止状態マッピング>
まず、1の多くの
生徒や学生のクラスは生徒のクラスの複数に対応する、多対グレードを実装します。
Student.javaエンティティクラスは、クラス属性がマッピングされています。
インポートしたjava.io.Serializable;
パブリッククラス学生シリアライズ{実装
パブリック学生(){
}
公共学生(文字列SNAME、ストリング性別、列アドレス){
this.sname = SNAME。
this.sex =セックス。
this.address =アドレス。
}
公共学生(文字列SNAME、ストリング性別、列アドレス、グレードグレード){
this.sname = SNAME。
this.sex =セックス。
this.address =アドレス。
this.grade =グレード;
}
プライベートint型のSID。
プライベート文字列SNAME。
プライベート文字列のセックス。
プライベート文字列のアドレス。
@一方向多対:エンティティのいずれかのパッケージのうちの一つでオブジェクトを
、専用グレードグレード
公共int型GETSID(){
SIDを返す;
}
公共ボイドがsetsid(INT SID){
this.sid = SID;
}
パブリック文字列getSname(){
戻りSNAME;
}
公共ボイドsetSname(文字列SNAME){
this.sname SNAME =;
}
パブリック文字列getSex(){
セックスを返す;
}
公共ボイドsetSex(文字列セックス){
this.sexセックス=;
}
パブリック文字列getAddress(){
アドレスを返します;
}
公共ボイドsetAddress(列アドレス){
this.address =アドレス。
}
公共グレードgetGrade(){
グレードを返します。
}
公共ボイドsetGrade(グレードグレード){
this.grade =グレード。
}
@Override
パブリック文字列のtoString(){
リターン"学生[SID =" + SID + "SNAME =" + SNAME + "性別=" +性別
+ "アドレス=" +アドレス+ "]"。
}
}
Student.hbm.xml学生マッピングファイル、および多くの関係のクラスを追加
<!DOCTYPE休止状態マッピングPUBLIC " - //休止/休止状態のマッピングDTD 3.0 // EN"
「http://www.hibernate.org/dtd/hibernate-mapping-3.0。 DTD ">
の<hibernateマッピング>
< -实体映射文件:!将实体对象映射为数据库中的字段- >
<クラス名=" com.lxit.entity.Student」表= "学生">
<id名= "SID"欄= "SID">
<ジェネレータクラス= "天然"> </ジェネレータ>
</ ID>
<プロパティ名= "SNAME"カラム= "SNAME"タイプ= "java.lang.Stringで"> </プロパティ>
<プロパティ名= "性別"欄= "セックス"> </ property>の
<プロパティ名= "アドレス"欄= "アドレス"> </プロパティ>
<! - 1つのマッピング関係を実現します- >
<多対一名=「グレード」クラス=「com.lxit.entity.Grade」欄=「GID」怠惰=「偽」> </多対1>
</クラス>
</休止状態マッピング>
第二に、多くの
クラスと学生対多のマッピングされたGrade.javaエンティティクラスは、生徒のコレクションが含まれています。
インポートしたjava.io.Serializable;
輸入はjava.util.HashSet。
輸入java.util.Set;
パブリッククラスグレードシリアライズ{実装
パブリックグレード(){
}
公共グレード(文字列gnameという)を{
this.gname = gnameという。
}
//在一方添加多方的集合
公共の設定<学生>学生=新しいHashSetの<学生>();
プライベートint型のGID。
プライベート文字列gnameは、
公共INT GETGID(){
戻りGID。
}
公共ボイドのsetgid(INTのGID){
this.gid = GID。
}
パブリック文字列getGname(){
戻りgnameという。
}
公共ボイドsetGname(文字列gnameは){
this.gname = gnameという。
}
公共の設定<学生> getStudents(){
生徒を返します。
}
パブリック無効setStudents(セット<学生>学生){
this.students =学生。
}
}
グレードマッピングファイル
<!DOCTYPE休止状態マッピングPUBLIC " - //休止/休止状態のマッピングDTD 3.0 // EN"
「http://www.hibernate.org/dtd/hibernate-mapping-3.0。 DTD ">
の<hibernateマッピング>
< -实体映射文件:!将实体对象映射为数据库中的字段- >
<クラス名=" com.lxit.entity.Grade」表= "グレード">
<id名= "GID"欄= "GID">
<ジェネレータクラス= "天然"> </ジェネレータ>
</ ID>
<プロパティ名= "gnameは"タイプ= "java.lang.Stringで">
<カラム名= "gnameは"長さ= "20"> </列>
</プロパティ>
<! -
逆:友人は、それが外部キーを維持するために、当事者の責任を維持すると述べ、デフォルトはfalseです
カスケード:あなたは、クラス、保存する生徒に対応するクラスを保存するときに、カスケード効果を示します
。 - >
<セット名= "学生"表= "学生"カスケード= "すべて">
<キー列= "GID"> </ key>を
<1対多のクラス= "com.lxit.entity.Student" />
< /設定>
</クラス>
</休止状態マッピング>