hi_better 2016-04-22 06:30 采纳率: 0%
浏览 1568

Hibernate一对多中,在多方的关联对象如果提供getter方法,hql查询不出结果的问题

entity

 @Entity
@Table(name = "tb_many", catalog = "ecs")
public class Many implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id 
    @Column(name="mid")
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Integer mid;
    private String mname;

    @ManyToOne(targetEntity=One.class)  
    @JoinColumn(name="oid")
    private One one;



    public Integer getMid() {
        return mid;
    }

    public void setMid(Integer mid) {
        this.mid = mid;
    }

    public String getMname() {
        return mname;
    }

    public void setMname(String mname) {
        this.mname = mname;
    }

    public One getOne() {
        return one;
    }

    public void setOne(One one) {
        this.one = one;
    }

    public Many() {
        // TODO Auto-generated constructor stub
    }

}

 @Entity
@Table(name = "tb_one", catalog = "ecs")
public class One implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id 
    @Column(name="oid")
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Integer oid;
    private String oname;

    @OneToMany(targetEntity=Many.class, mappedBy="one", fetch=FetchType.EAGER)
    private Set<Many> manys;



    public Integer getOid() {
        return oid;
    }

    public void setOid(Integer oid) {
        this.oid = oid;
    }

    public String getOname() {
        return oname;
    }

    public void setOname(String oname) {
        this.oname = oname;
    }

    public Set<Many> getManys() {
        return manys;
    }

    public void setManys(Set<Many> manys) {
        this.manys = manys;
    }

    public One() {
        // TODO Auto-generated constructor stub
    }


}
 String hql = "from One";           
            Query query = session.createQuery(hql);
            list = query.list();

Hibernate sql

 Hibernate: select one0_.oid as oid1_3_, one0_.oname as oname2_3_ from ecs.tb_one one0_
Hibernate: select manys0_.oid as oid3_3_0_, manys0_.mid as mid1_1_0_, manys0_.mid as mid1_1_1_, manys0_.mname as mname2_1_1_, manys0_.oid as oid3_1_1_ from ecs.tb_many manys0_ where manys0_.oid=?
Hibernate: select manys0_.oid as oid3_3_0_, manys0_.mid as mid1_1_0_, manys0_.mid as mid1_1_1_, manys0_.mname as mname2_1_1_, manys0_.oid as oid3_1_1_ from ecs.tb_many manys0_ where manys0_.oid=?
Hibernate: select manys0_.oid as oid3_3_0_, manys0_.mid as mid1_1_0_, manys0_.mid as mid1_1_1_, manys0_.mname as mname2_1_1_, manys0_.oid as oid3_1_1_ from ecs.tb_many manys0_ where manys0_.oid=?

查不出任何结果
如果把Many中的

 public One getOne() {
        return one;
    }

注释掉,则可以正常查询
哪位高手知道我错在何处,好揪心。。

  • 写回答

1条回答

  • devmiao 2016-04-22 06:34
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)