我一般都是在百度之后解决不了的情况下才发问
请各位大侠指点指点问题1、hibernate成功进行级联操作在映射文件中应如何配置
问题2、异常信息:Exception occurred inside setter of......的原因及解决方法
案例:Account(父表)与Birthday(子表)是唯一外键一对一关系
用hibernate先将子表中一条id是"1"的记录删除后查询父表id是"1"的记录时报此异常
问题3、异常信息:not-null property references a null or transient value的原因及解决方法
案例:Account(父表)与Birthday(子表)是唯一外键一对一关系
测试类中的代码:
... ...
String hql="from Account where name=?"
Query q=session.createQuery(hql);
q.setString(0,"中国");(数据库中account表有该记录,对应的birthday也有)
Birthday bir=new Birthday();
bir.setBirthday(new Date());
Account act=(Account)q.uniqueResult();
act.setBir(bir);
session.save(act);
session.flush();
session.getTransaction().commit();
存回数据库时报此异常
问题4、异常信息:property mapping has wrong number of columns
案例:Account(父表)与Birthday(子表)是唯一外键一对一关系
Account.hbm.xml关于一对一的配置代码
   <one-to-one name="bir"
   class="one2one.Birthday"
   cascade="all"/>
Birthday.hbm.xml关于一对一的配置代码
   <many-to-one name="act"
   column="BAID"
   not-null="true"
   unique="true"
   class="one2one.Account"
   property-ref="bir"/>
bir是Account类中Birthday类关联属性的引用
操作一:删除property-ref="bir"即可进行插入操作,但不理解其原因

解决方案 »

  1.   

    1.hibernate 级联删除不会
    2.是不是你设置了外键操作 而又不能级联删除 可以去掉外键删除看看
    3.new date();换个固定日期看看
    4.删除property-ref="bir"即删除了关联
    能进行插入操作你的问题主要应该是设置级联删除属性 第一个问题解决了 后面的应该没什么问题
      

  2.   

    嗯,主要是不清楚Hibernate的级联属性如何正确设置,
    下载的电子书、和文档中所提供的内容感觉不够全面,不光是级联设置,还有一对多中的集合映射的仅仅只有set,第四个问题我当前的状态是知其然不知其所以然啊!