首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HQL with IN子句

HQL with IN子句
EN

Stack Overflow用户
提问于 2016-10-21 20:26:18
回答 2查看 210关注 0票数 0

查询为:

代码语言:javascript
复制
select e from Customer 
join e.Address ad where ad.Id =:Id and :houseNo in (ad.houseNos);

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

所以,我的问题是,我们可以将houseNo作为输入参数传递吗?查询将选择客户的地址,他的房子应该是该街道地址的房子之一。

数据模型:-- Customer是主表,它有一个地址列表,而Address又有一个门牌号列表。我有住址身份证和门牌号。因此,我需要获得客户的详细信息,谁住在指定地址的指定房号中。

EN

回答 2

Stack Overflow用户

发布于 2016-10-21 20:52:30

我想你搞错了三件事:

  1. 你没有定义你的别名
  2. 你的IN似乎是以相反的方式使用的(它必须是attribute in (values),而你正在尝试attribute in (values)

试试这个:

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2016-10-25 14:25:18

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40176673

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档