关于Criteria查询关联表的问题.高分求助.

来源:百度知道 编辑:UC知道 时间:2024/06/16 11:56:38
用 criteria 查询几个有关联的表.

现在有3个有关联的表 A>B>C.

我现在只想查询 b,并且得到表c的数据.

不想查A的数据,如何写代码?

我是这样写的,但是总是报空指针.

Session session = this.getSession();
DetachedCriteria de = DetachedCriteria.forClass(B.class);
Criteria c = de.getExecutableCriteria(session);

List<SysUser> s =c.list();
session.close();

如果改成
DetachedCriteria de = DetachedCriteria.forClass(B.class);
Criteria c = de.getExecutableCriteria(session);
de.createCriteria("a");
List<SysUser> s =c.list();
session.close();

则正确,但是又同时返回了表A里的所有值.

如何处理? 解决者有200分送上.
算了,你们可以无视上面的话. 从这里开始看.

现在有A B C三个关联表.关联关系为A>B>C
B中有private A a;属性.
C中有private B b;属性.

当我使用以下代码查询表C和B时,系统报错

DetachedCriteria de = DetachedCriteria.forClass(C.class);
DetachedCriteria def =de.createCriteria("b");
Criteria c = de.getExec

没太用过这个类,如果这样搞不定,写个hql语句查询对于3个表来说还是很简单的。例如from B where C.b = xx。参考一下吧。

你不用考虑A表 因为是数据关联 你查B的时候 自动把B中的A查出来了
建议你再把要描述的内容组织一下 你说的比较模糊 不知道你要表达的什么意思

推荐您去这看看,这样的问题都有详细的解决方法,他们的java教程讲解的比较全,你可以去学习下,希望对你有帮助
参考资料:http://www.baidu.com/s?wd=%B1%B1%B7%E7%CD%F8&rsv_bp=0&rsv_spt=3&inputT=422

用延迟加载试试