Hibernate ORM 多对多

学生类和配置文件

public class Student implements Serializable{


    private int sid;
    private String sex;
    private String sname;
    private Grade grade;
   

.....

}


<?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">
<!-- Mapping file autogenerated by MyEclipse Persistence Tools -->
<hibernate-mapping>
    <class name="entity.Student"  table="student">
        <id name="sid"  column="sid"  type="java.lang.Integer">
            <generator class="increment"></generator>
        </id>
        <property name="sname" type="java.lang.String">
            <column name="sname" length="20" not-null="true"></column>
        </property>
        <property name="sex">
            <column name="sex"></column>
        </property>
        <!-- 配置多对一的关联关系 -->
        <many-to-one name="grade" class="entity.Grade" column="gid">
        </many-to-one>
    </class>
</hibernate-mapping>



班级类和配置文件

public class Grade implements Serializable{
private int gid;
private String gname;
private String gdesc;
//在一方定义一个多方的集合
private Set<Student> students=new HashSet<Student>();

........

}



<?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">
<!-- Mapping file autogenerated by MyEclipse Persistence Tools -->
<hibernate-mapping>
    <class name="entity.Grade" table="grade">
        <id name="gid" column="gid" type="java.lang.Integer">
            <generator class="increment"></generator>
        </id>
        <property name="gname" type="java.lang.String">
            <column name="gname" length="20" not-null="true"></column>
        </property>
        <property name="gdesc">
            <column name="gdesc"></column>
        </property>
        <!-- inverse 由多方维护关联关系 多方不需要维护关联关系   -->
        <set name="students" table="student" inverse="true">
         <key column="gid"></key>
         <one-to-many class="entity.Student"/>
        </set>
    </class>
</hibernate-mapping>

在一方中  inverse属性的使用提高了sql语句的效率


cascade属性

当设置了cascade属性不为none时,Hibernate会自动持久化所关联的对象

cascade属性的设置会带来性能上的变动。

在<set>属性中设置cascade属性    可以设置为 delete  all  save-update  none



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值