Hibernate一对多双向关联

                                     Hibernate一对多双向关联 

          在测试一对多双向关联时,产生了一点疑问,同inverse属性相关。

1、数据库结构

           customer表:{ customerId , customerName}

           orders表:{ orderId , orderName , idCustomer},其中idCustomer是外键,表示customer的ID。

          (本人采用的是MS SQL SERVER 2000个人版,刚开始时新建了一个order表,结果老是报错,说' order '附近有语法错误,后来才明白order是数据库的关键字。因此,千万不要与数据库关键字重名!)

2、Customer.hbm.xml

< hibernate-mapping >
    
< class  name ="com.persistent.Customer"  table ="customer" >
        
< id  name ="id"  column ="customerId"  unsaved-value ="null" >
            
< generator  class ="increment" ></ generator >
        
</ id >
        
< property  name ="name"  column ="customerName" ></ property >
        
< set  name ="orders"  cascade ="all"   lazy ="false" >
            
< key  column ="idCustomer" ></ key >
            
< one-to-many  class ="com.persistent.Order" />
        
</ set >
    
</ class >
</ hibernate-mapping >

3、Order.hbm.xml

< hibernate-mapping >
    
< class  name ="com.persistent.Order"  table ="orders" >
        
< id  name ="id"  column ="orderId"  unsaved-value ="null" >
            
< generator  class ="increment" ></ generator >
        
</ id >
        
< property  name ="name"  column ="orderName" ></ property >
        
< many-to-one  name ="customer"  
                     column
="idCustomer"
                     class
="com.persistent.Customer"
                     lazy
="false"
                     cascade
="all" >
        
</ many-to-one >
    
</ class >
</ hibernate-mapping >

4、Customer.java和Order.java

public   class  Customer  {
private Long id;
private String name;
private Set orders = new HashSet();
...
}


public   class  Order  {
private Long id;
private String name;
private Customer customer;
...
}

5、结果

          在测试<set/>的inverse属性时,发现不论inverse为true还是false,单独保存customer或者order都能正确进行,好像此时inverse没起到作用一般,有点疑惑,难道映射文件有误?!

                         *****************************************************************************************

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值