将延迟加载取消掉,即设置lazy="false"

解决方案 »

  1.   

    改为了@ManyToOne(fetch=FetchType.EAGER,optional=true)    
    @JoinColumn(name = "MAINTAINER")还是不行
      

  2.   

    要设外键的,再个级联保存时,也就是你的user对象不一定非的是持久化对象,也可以是临时、游离对象
      

  3.   

    @ManyToOne(fetch=FetchType.EAGER,optional=true,cascade="save-update") 
      

  4.   

    你确认已经给ci中的user对象赋值了吗,user的主键是空的话就会出现上述错误
    并不是user对象必须是持久化的才能进行保存成功!
    应该是你的user对象的主键是空的!
      

  5.   

    单向配置----你只需保存Ci的时候,不要级联去操作User,但是你必须获得User的id。你肯定是级联了User的操作,不然不会报这个的。 @ManyToOne()
     private LoanType loanType;//多对一
      

  6.   

    @ManyToOne(fetch=FetchType.EAGER,optional=true,cascade="save-update") 
    试试这个
      

  7.   

    cascade (可选——默认为none) 让操作级联到子实体,设置 <set name="" table="" cascade="all"> 
      

  8.   

    @ManyToOne(fetch = FetchType.EAGER, optional = true, cascade = CascadeType.PERSIST, targetEntity = Area.class)
    @JoinColumn(name = "areaCode", referencedColumnName = "code")
    我是在spring mvc3中这样配置pojo的ManyToOne