Hibernate中的单向多对一关联
来源:互联网 发布:美国购物节网络星期一 编辑:程序博客网 时间:2024/06/06 00:42
继上回讲到 Hibernate中的单向一对多关联,这次来实现一下Hibernate中的单向多对一关联。对原来的项目修改如下:
Hibernate中的单向多对一关联,需要我们在多方增加一个一方的属性,并且在多方的映射配置文件中添加many-to-one的配置。
Grade.java
package com.imooc.entity;import java.io.Serializable;import java.util.HashSet;import java.util.Set;/** * Created by DreamBoy on 2016/5/18. */public class Grade implements Serializable { private int gid; private String gname; private String gdesc; public Grade() { } public Grade(int gid, String gname, String gdesc, Set<Student> students) { this.gid = gid; this.gname = gname; this.gdesc = gdesc; } public Grade(String gname, String gdesc) { this.gname = gname; this.gdesc = gdesc; } public int getGid() { return gid; } public void setGid(int gid) { this.gid = gid; } public String getGname() { return gname; } public void setGname(String gname) { this.gname = gname; } public String getGdesc() { return gdesc; } public void setGdesc(String gdesc) { this.gdesc = gdesc; }}
Grade.hbm.xml
<?xml version='1.0' encoding='utf-8'?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping> <class name="com.imooc.entity.Grade" table="grade"> <id name="gid" column="gid" type="java.lang.Integer"> <generator class="increment"/> </id> <property name="gname" type="java.lang.String"> <column name="gname" length="20" not-null="true"/> </property> <property name="gdesc"> <column name="gdesc"/> </property> </class></hibernate-mapping>
Student.java
package com.imooc.entity;import java.io.Serializable;/** * Created by DreamBoy on 2016/5/18. */public class Student implements Serializable { private int sid; private String sname; private String sex; //在多方定义一个一方的引用 private Grade grade; public Student() { } public Student(String sname, String sex) { this.sname = sname; this.sex = sex; } public int getSid() { return sid; } public void setSid(int sid) { this.sid = sid; } public String getSname() { return sname; } public void setSname(String sname) { this.sname = sname; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public Grade getGrade() { return grade; } public void setGrade(Grade grade) { this.grade = grade; }}
Student.hbm.xml
<?xml version='1.0' encoding='utf-8'?><!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"><hibernate-mapping> <class name="com.imooc.entity.Student" table="student"> <id name="sid" column="sid" type="java.lang.Integer"> <generator class="increment"/> </id> <property name="sname" type="java.lang.String"> <column name="sname" length="20" not-null="true"/> </property> <property name="sex"> <column name="sex"/> </property> <!-- 配置多对一关联关系 --> <many-to-one name="grade" class="com.imooc.entity.Grade" column="gid"></many-to-one> </class></hibernate-mapping>
重要的配置为:
<!-- 配置多对一关联关系 --> <many-to-one name="grade" class="com.imooc.entity.Grade" column="gid"></many-to-one>
Test.java
package com.imooc.test;/** * Created by DreamBoy on 2016/5/18. */import com.imooc.entity.Grade;import com.imooc.entity.Student;import com.imooc.util.HibernateUtil;import org.hibernate.Session;import org.hibernate.Transaction;import java.util.Set;/** * 单向多对一(学生---》班级) */public class Test { public static void main(String[] args) { save(); } //保存 public static void save() { Grade g = new Grade("Java一班", "Java软件开发一班"); Student stu1 = new Student("哈", "女"); Student stu2 = new Student("哇", "男"); //设置关联关系,指定多到一的关联关系 stu1.setGrade(g); stu2.setGrade(g); Session session = HibernateUtil.getSession(); Transaction tx = session.beginTransaction(); session.save(g); session.save(stu1); session.save(stu2); tx.commit(); HibernateUtil.closeSession(session); }}
注意:在执行Test类前,需要删除掉上次项目中数据库中表的数据。HibernateUtil类与上回项目中的一致,Hibernate的配置文件也一致。
总结:
0 0
- Hibernate中的单向多对一关联
- Hibernate中的多对一单向与双向关联
- Hibernate多对一单向关联映射
- hibernate单向多对一关联
- Hibernate多对一单向关联
- hibernate:多对一单向关联映射
- hibernate多对一单向关联
- Hibernate多对一单向关联
- hibernate多对一单向关联_Annotation
- hibernate多对一单向关联_XML
- Hibernate学习:单向多对一关联
- Hibernate多对一映射单向关联
- Hibernate Annotation 多对一单向关联
- Hibernate多对一关联映射(单向)
- hibernate多对一单向关联
- Hibernate单向多对一关联
- Hibernate单向多对一关联
- Hibernate单向多对一关联
- Sublime Text3配置Markdown
- Android--173个项目源码
- git checkout -b 报错
- Java的两种赋值的区别
- C#Winform程序如何发布并自动升级(图解)
- Hibernate中的单向多对一关联
- Android NDK隐藏jni动态库的内部符号表
- java数值范围以及float与double精度丢失问题
- windows笔记-内存映射文件
- spring mvc 1
- Android贝塞尔动画实现QQ,虎牙等平台点赞效果初探
- NoClassDefFoundError org/codehaus/plexus/compile/util/scan/mapping/SuffixMapping
- hive的安装和配置
- AndroidManifest合并原理