2 myc csdn Myc_CSDN 于 2016.04.28 19:10 提问

hql 多对一查询语句如何写 1C
  • public A { private long id; private String a; private B b; } public B{ private long id; private String b; } 现在我知道了B类的id和A类的变量a,要查出整个A类,hql语句怎么写啊,在线急等,求大神指点

4个回答

CSDNXIAOD
CSDNXIAOD   2016.04.28 19:22

hibernate查询语句--HQL
hibernate查询语句--HQL
hibernate查询语句--HQL
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

whoSaidNo
whoSaidNo   2016.04.28 19:26
whoSaidNo
whoSaidNo   2016.04.28 19:29

直接使用子查询应该也可以吧
String hql="from A a where a.b.id in(select id from B)"

whoSaidNo
whoSaidNo 应该是String hql="from A a where a.b.id in(select b.id from B b)",忘了取别名,容易出错
大约 2 年之前 回复
whoSaidNo
whoSaidNo   2016.04.28 19:43

如果你不能直接查询B的话,可以写成
String hql="from A a where a.b.id in :list";
List list=new ArrayList();

list.add(B类的ID);
query.setParameterList(“list”,list);

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
hibernate关于多对多映射和多对一的hql查询
public void queryCustomerbymerchantId(){ SessionFactory sf = HibernateUtil.getSessionFactory(); Session session = sf.getCurrentSession(); Transaction ts = session.beginTransaction(); try { ...
hql语句:一对多查询
一对多的查询又包含以下情况: 1、等值连接 2、内连接 3、迫切内连接 4、左外连接 5、迫切左外连接1、等值连接:一对多查询的时候,由于使用的hql语句,是根据类来查询的,所以hql语句这样表示: /** * 等值连接 */ public void Connect_equal(){ Session session=sessionFacto
Hibernate中的HQL模糊查询语句
@Query("SELECT entity FROM PartsChange entity WHERE entity.num like ?") List findByNumLike(String yearStr); 注意: %放在传入的字符串参数中; 占位符不能带数字;
hibernate中一对多关系hql条件查询
当hibernate中难免遇到一对多的情况,并且需要对多方添加条件,使用sql查询会简单很多,hql的语法如下 Teacher对应下有多个Student Teacher中Set students; select t from Teacher t,Student s where t.tNo ='001' and s.sName like '张%' and s in elements(t
HQL一对多条件查询
需求:User和Book是一对多的关系,在User类中已定义Setbooks,要求根据Book.abc查询所有的User。   HQL语句: select distinct u from User u left join u.books b where b.abc=:abc
hibernate 一对多,多对多查询
一、一对多 以班级Classes和学生Student为例: 回忆sql语句: //内链接,两种方式效果一样,查询的是两边都有的数据 SELECT c.*,s.* FROM classes c,student s WHERE s.cid=c.cid; SELECT c.cname,s.sname FROM classes c INNER JOIN student s O
Hibernate HQL 一对多查询
1、等值连接: /** * 等值查询 查询出来的结构很差 */ public List queryClasses_Student_EQ(){ Session session = sessionFactory.openSession(); List cList = session.createQuery("from Classes
HQL多对多条件查询
在数据库joblog中用到了3个表:student(学生表)、course(课程表)和sc(选课表)。这些表的详细信息见6.1.1节“示例中用到的默认数据库表和数据”。在现实模型中,一个学生可以选择多门课程,一个课程可以被多个学生选择,student和course是多对多的关联关系。为了便于演示HQL的多表查询,本节中假设student和course之间是单向关联关系。   在多对多的关联关系中
【Hibernate九】HQL之多表查询(一对多和多对多)
一、一对多 以班级Classes和学生Student为例: 回忆sql语句: //内链接,两种方式效果一样,查询的是两边都有的数据 SELECT c.*,s.* FROM classes c,student s WHERE s.cid=c.cid; SELECT c.cname,s.sname FROM classes c INNER JOIN student s O
hibernate查询语句--HQL
hibernate查询语句--HQL hibernate查询语句--HQL