+ -
当前位置:首页 → 问答吧 → hibernate 一对多 查询问题

hibernate 一对多 查询问题

时间:2011-08-23

来源:互联网

想问一下,hibernate一对多。
List<DispatchInfo> dispatchInfo = dispatchService.findByAll();
获取全部数据,已经获取到了。debug的时候可以看到数据
但是下一步for (int i = 0; i < dispatchInfo.size(); i++) 就进不去了
后来试了一下
System.out.println(dispatchInfo.size());
System.out.println(dispatchInfo.get(0).get*);也不行
跟死循环一样 输不出东西。卡在那。。。
有没有人知道是什么情况的。。。谢谢。。。

作者: toto71229   发布时间: 2011-08-23

用FOR遍历, 有实体接收 直接用实体点属性。

作者: cw329103272   发布时间: 2011-08-23

引用 1 楼 cw329103272 的回复:

用FOR遍历, 有实体接收 直接用实体点属性。


不行的for (int i = 0; i < dispatchInfo.size(); i++)走到这一步就没了 进不了循环
想直接取第一个用dispatchInfo.get(0)也不行 
而且不报错 后台什么都没打出来 跟死循环一样。。。

作者: toto71229   发布时间: 2011-08-23

引用 1 楼 cw329103272 的回复:

用FOR遍历, 有实体接收 直接用实体点属性。


对了 情况跟这个帖说的一样 不过他的也没人回答。。。
http://topic.csdn.net/u/20080618/10/2c35c83e-ac0c-447b-a586-dc637c4b3079.html

debug的话 会跳到
the source attachment does not contain the source for the file NativeMethodAccessorImpl.class.

作者: toto71229   发布时间: 2011-08-23

List<DispatchInfo> dispatchInfo= new ArrayList<DispatchInfo>();
  dispatchInfo=dispatchService.findByAll();
  如果你方法是返回LIST
  dispatchInfo=(ArrayList<DispatchInfo>)dispatchService.findByAll();
  

for(DispatchInfo df : dispatchInfo)
{
  system.out.print(df.getXX)
}


 试试。

作者: cw329103272   发布时间: 2011-08-23

你确定在这一句取到的dispatchInfo不为空吗?
List<DispatchInfo> dispatchInfo = dispatchService.findByAll();
如果不为空,dispatchInfo.size()应该有值的才对啊。
实在不行你多帖点代码出来,好分析啊。

作者: lee511411973   发布时间: 2011-08-23

你配置文件 配置了一对多关系? 

作者: cw329103272   发布时间: 2011-08-23

引用 6 楼 cw329103272 的回复:

你配置文件 配置了一对多关系?


DispatchInfo类
private String infoId;这个的get/set我就不发了
private List<DispatchModule> dispatchModule;
@OneToMany(cascade = {CascadeType.ALL}, fetch = FetchType.EAGER)
@JoinColumn(name="INFOID")
public List<DispatchModule> getDispatchModule() {
return dispatchModule;
}
public void setDispatchModule(List<DispatchModule> dispatchModule) {
this.dispatchModule = dispatchModule;
}

DispatchModule类
private String moduleId;这些的get/set我就不发了
private String moduleName;
private Date date;
private String moduleStatus;
private DispatchInfo dispatchInfo;
@ManyToOne(cascade={CascadeType.ALL})
  @JoinColumn(name="INFOID")
public DispatchInfo getDispatchInfo() {
return dispatchInfo;
}
public void setDispatchInfo(DispatchInfo dispatchInfo) {
this.dispatchInfo = dispatchInfo;
}

不知道这样配会不会错,插入数据的时候是可以的。。。

作者: toto71229   发布时间: 2011-08-23

引用 5 楼 lee511411973 的回复:

你确定在这一句取到的dispatchInfo不为空吗?
List<DispatchInfo> dispatchInfo = dispatchService.findByAll();
如果不为空,dispatchInfo.size()应该有值的才对啊。
实在不行你多帖点代码出来,好分析啊。


Model类贴出来了。。。看能不能发现问题。。。

作者: toto71229   发布时间: 2011-08-23

你什么版本的hibernate hibernate自动生成实体类的时候 不是会有个对应实体类的配置文件

作者: cw329103272   发布时间: 2011-08-23

引用 9 楼 cw329103272 的回复:

你什么版本的hibernate hibernate自动生成实体类的时候 不是会有个对应实体类的配置文件


是用注解的
@ManyToOne(cascade={CascadeType.ALL})
  @JoinColumn(name="INFOID")
这种的。。。公司里边用这种的 跟着用。。。

作者: toto71229   发布时间: 2011-08-23

热门下载

更多