1

我想知道如果我想调用NamedQuery存储在具有不同设置的实体中的存储在 JPA 中的操作,例如命令 DESC 或 ASC 以类似于参数 ( setParameter()) 的方式使用。例如,这不起作用:

@NamedQuery(name = "Entry.findAll", query = "SELECT e FROM Entry e WHERE e.switch = :switch ORDER BY e.name :order)

确实是使用两个查询的唯一方法,例如:

@NamedQuery(name = "Entry.findAllDESC", query = "SELECT e FROM Entry e WHERE e.switch = :switch ORDER BY e.name DESC)
@NamedQuery(name = "Entry.findAllASC", query = "SELECT e FROM Entry e WHERE e.switch = :switch ORDER BY e.name ASC)

或在代码中生成查询字符串?

我想知道我没有找到办法,因为在大多数查询中我必须更改这些东西,这将使我更喜欢使用NamedQueries存储在实体中的中央的编程风格几乎是不可能的。

4

1 回答 1

0

NamedQuery是静态查询。您不能将动态查询值(即 ASC 或 DESC)放入NamedQuery. 您应该使用DynamicQuery(即 JPQL)或Native QueryCriteria来获得您想要的输出。

于 2013-09-04T07:19:21.320 回答