外键 列保存出现的错误提示在MAP时 外键外 not null ="true"  具体过程 不详细写大体是这样的,A表 有bid 列参照B表 a =  new A 
 a.b = load B
 a. =...
 a.=...
 save a
查了网上,有两种参点,
  1、 是 not null 改为false ,我觉得不应这样,通道 HIB 没有很好的处理这个问题?
  2、b 是 new 出来 应先 save b 后save a ,这个很容易理解 ,我显然不是这样的。求各位 看看问题出在那里.?

解决方案 »

  1.   

    load B意思是已经有B了是吧?那应该不会有错呀?又没有空为什么会报错?
      

  2.   

    a.b = load B 请问你load出的B在数据库中是否存在这条记录,load返回的代理对象,即使在数据库中没有对应的记录在load的时候也不会报异常,但是在save a的时候很定回报的!
      

  3.   

    主表是A表的时候 load b的时候 才会去写关联字段即外键!
      

  4.   

    忘记加一句 ,  
      在没加并发控制以前是正确的,加上后出错
      ( 并发控制 optimistic-lock="version" 表中version字段。)
      

  5.   

     not null="true" 改为 not null="false"
      出现错误 
      object references an unsaved transient instance - save the transient instance before flushing  HELP!!!
      

  6.   

    问题已经解决   原因是 后加version 字段谢谢各位
      

  7.   

    load是支持lazy策略的 在你没有使用被load的对象的时候 对象都不会被拿出 你看看是不是lazy字段的问题