相关疑难解决方法(0)

JPA 2.0 subselect/subquery in order by 子句和条件api

我想使用 JPA 2.0 标准 api 来构建带有子选择的 order by 子句。我知道你可以用普通的 SQL 来做到这一点,但它可以用标准 api 映射吗?有人可以给一个代码示例吗?

例子:

Order(name, address) // table1

OrderPriority(address, priority) // table2 priority by address

select o from Order o order by (select p.priority from OrderPriority p where 
p.address = o.address)
Run Code Online (Sandbox Code Playgroud)

hibernate subquery sql-order-by criteria-api jpa-2.0

5
推荐指数
1
解决办法
3261
查看次数

子查询的jpql顺序产生意外的AST节点异常

我将一个工作(postgre)sql查询翻译成jpql,但是hibernate抛出一个

org.hibernate.hql.ast.QuerySyntaxException:意外的AST节点异常

这些是我的核心模型类:

@Entity
public class Piece {
    @Id
    @GeneratedValue
    public Long id;

    @ManyToOne
    public AUser user;
    public long index;
...
}

@Entity
public class Vote {
    @Id
    @GeneratedValue
    public Long id;

    @ManyToOne
    public AUser receiver;
...
}

@Entity
public class AUser {
    @Id
    @GeneratedValue
    public Long id;

    @OneToMany(mappedBy="receiver", cascade=CascadeType.ALL)
    public List<Vote> receivedVotes;
...
}
Run Code Online (Sandbox Code Playgroud)

这是我的jpql查询:

String query = "select p from Piece p order by (select count(v.receiver) from Vote v where v.receiver.id=p.user.id) desc, p.index";
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释异常,它为什么会发生以及如何更改查询以避免它.谢谢!

hibernate jpql playframework

3
推荐指数
1
解决办法
5727
查看次数