解决方案 »

  1.   

    关键b表有数据  他没有执行查询b表数据   看sql语句 直接就添加b表数据了
      

  2.   

    我擦,还有这奇葩事情...   你在B中也加上one to many的关系
      

  3.   

    刚又仔细看了看  当a表的外键为空的时候才会添加。[img=http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/003/monkey/2.gif]b表不是我写的   所以能不动就不动把
      

  4.   

    楼主这种配置是
    many-to-one 的单向关联
    一般只需要配置为
    <many-to-one name="b" column="b_id" cascade="all"/>出现楼主这种情况
    我猜测应该是楼主
    往a注入的b
    b没有id
    所以会导致 级联插入b
      

  5.   

    a表的外键为空?  你不是说b表有数据么?  你在添加A表数据的时候,不用把b字段加进去么?
      

  6.   

      当A表的外键为空的时候  会在B表中添加一条新的数据  然后把新数据的id放到a表的外键上
      

  7.   


    我不能理解了,你B表有ID没,  有的话,你在添加A表多条数据的时候,要不要把B表的ID添加进去?   既然B表原来有数据,而且ID都设置了,怎么会去生成新数据,并把新数据ID放到A表?
      

  8.   

     说不清楚了。
    B表有 1,2,3 三个数据  
    A 表字段是  b1,b2  都是b表的外键  做添加的时候 b1=1  b2=null没有数据的  做完添加之后 数据库中  b1=1  b2=4     b表多出一数据4
      

  9.   

    怪不得,你b 2为空,他不去创建新数据,你哪来的id
      

  10.   

    那就别设置A对B的 many to one这样的话,你A表留一个字段:Bid     。需要的话你就取bid 去B查就是
      

  11.   

    那就别设置A对B的 many to one这样的话,你A表留一个字段:Bid     。需要的话你就取bid 去B查就是
    好麻烦的
     
    not-null这个属性可以吗  我式的好像没啥变化呀
      

  12.   

    在多对一的表中 配置 many to one 在一对多的表中 配置 one to many 在主表中配置cascade=all