日期:2014-05-19  浏览次数:20695 次

用hql怎么取的第三方表的数据
我有个部门表如下:
public class SysDepart implements java.io.Serializable {

// Fields

private int depid;
private String depname;
private String depstatus;
private String depremark;
private Set sysRoles = new HashSet(0);
private Set sysEmployees = new HashSet(0);
  ......
}
有个角色表如下:
public class XOrder implements java.io.Serializable {

// Fields

private Integer xorderid;
private XTrade XTrade;
private Integer xpnum;
private String xordertime;
private Double xprice;
  .......
}
这两个表生成了个第三方表,部门角色表,然后用Hibernate生成的实体类,是没有这个第三方表的,现在 要根据部门Id查询该部门下的所有的角色,如下:
DetachedCriteria dc = DetachedCriteria.forClass(SysDepart.class);//查询所有部门
List listDepart = sysDepartManager.findByCriteria(dc);
SysDepart sysDepart = (SysDepart) listDepart.get(0);
Set listOrles = sysDepart.getSysRoles();
查询出的部门表的角色 集合为-1,请问这是为什么了???

------解决方案--------------------
你两个表什么关系,一对多还是多对多。你直接对象导航啊
------解决方案--------------------
如果你是hibernate3.1一下版本,你HQL可以这么写
hql="form XOrder xo where xo.SysDepart.depid=?"

它会自动帮你生成隐式连接