带有IN子句的HQL

时间:2016-10-21 12:26:18

标签: hibernate jpa hql

查询是:

foo

我正在设置查询中的所有参数,但我收到语法错误异常。

所以,我的问题是我们可以将select e from Customer join e.Address ad where ad.Id =:Id and :houseNo in (ad.houseNos); 作为输入参数传递吗? 查询将选择客户的地址,他的房子应该是该街道地址的房屋之一。

数据模型: - 客户是主表,其中包含地址列表,而地址则包含房屋号列表。我有地址id和房子号码。因此,我需要获取居住在指定房屋中的客户详细信息。

2 个答案:

答案 0 :(得分:1)

我认为你错了三件事:

  1. 您没有定义别名
  2. 大写的属性名称
  3. 您的IN似乎以相反的方式使用(必须是attribute in (values)而您正在尝试values in (attribute)
  4. 试试这个:

    select e from Customer as e
    join e.address as ad // I assume address is your attribute and is declared as address (not Address), so it starts with lowercase
    where ad.id = :Id and ad.houseNos in (:houseNo);
    

    希望它有所帮助。

答案 1 :(得分:0)

在做了一些研究之后,我发现这是不可能的。我们可以使用嵌套查询处理问题场景。