繁体   English   中英

HQL子查询查询选择

[英]HQL Subquery Query Select

当我执行此查询时,我总是收到太多列错误。

SELECT o FROM Overlay o WHERE ( :coordinate ) IN ELEMENTS(o.blocksCoordinates)

如果我在sql中执行此操作,则可以:

Select * from Overlay overlay0_ where (0,0) in (select x, y from ...

坐标是具有x和y值的简单嵌入式实体。

@ElementCollection
private Set<Coordinate> blocksCoordinates = new HashSet<Coordinate>();

我的协调中心实体:

@Embeddable
public class Coordinate implements Serializable {
    private static final long serialVersionUID = -5866341829302555966L;

    protected int x;
    protected int y;

我究竟做错了什么?

反过来尝试:

select o from Overlay o left outer join o.blocksCoordinates as c where c = :coordinate

或使用with关键字:

select o from Overlay o join o.blocksCoordinates as c with c = :coordinate

使用该查询应返回在c =坐标上成功进行连接的所有Overlay。

编辑:或者,尝试使用x和y值:

select o from Overlay o join o.blocksCoordinates as c with c.x = :x and c.y = :y

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM