日期:2014-05-18  浏览次数:20725 次

many to one 级联关系配置问题 求帮助
本帖最后由 gaoshanwlm 于 2013-04-22 18:05:14 编辑
A 表根据areaid 查询 b表的areaname     
A表areaid 普通字段
b表的areaid是主键

 @ManyToOne
  @JoinColumn(name = "areaid", insertable = false, updatable = false, referencedColumnName = "areaid")
     //关联那个字段 ,以类中那个字段关联 两个表联系
  //@JoinColumn(name="areaid", referencedColumnName="areaid")
    public SysArea getSysArea() { 
      
return sysArea;
}
public void setSysArea(SysArea sysArea) {
this.sysArea = sysArea;
}

这么查 关联字段不出来
当改成
//@OneToOne(cascade = CascadeType.REFRESH , optional = false,fetch = FetchType.LAZY)
@JoinColumn(name="areaid", referencedColumnName="areaid")
就可以,当格式json就报错了 意思是关联关系配置不对 求帮助 如何配置这个关联关系

------解决方案--------------------
@ManyToOne
是可以关联查询出来的,因为一的一端默认是EAGER,

 @ManyToOne
  @JoinColumn(name = "areaid", insertable = false, updatable = false, referencedColumnName = "areaid")
     //关联那个字段 ,以类中那个字段关联 两个表联系
  //@JoinColumn(name="areaid", referencedColumnName="areaid")
    public SysArea getSysArea() { 
      
return sysArea;
}
你说的这样查不来,我就很怀疑了,。这样是可以查询出来的。
你确定,是没查询出来,还是没数据

------解决方案--------------------
不是主键关联,加上property-ref=“areaname”

@JoinColumn(name = "areaid", insertable = false, updatable = false, referencedColumnName = "areaid",property-ref="areaname")