【发布时间】:2015-02-22 18:33:50
【问题描述】:
我正在通过 Java EE 使用 JPA,并且有以下原生 postgresql 查询:
@NamedNativeQuery(name = "Player.getStandardDev", query ="SELECT STDDEV(?1) FROM Player WHERE ?2 IS NOT NULL")
(我意识到可能不需要检查IS NOT NULL,但在这种情况下这不是问题的根源)。
然后我有以下代码尝试执行查询:
Query query = getEntityManager().createNamedQuery("Player.getStandardDev");
query.setParameter(1, attribute);
query.setParameter(2, attribute);
return (BigDecimal) query.getSingleResult();
当getSingleResult() 被调用时,我收到以下错误:
org.postgresql.util.PSQLException: ERROR: function stddev(character varying) does not exist
Hint: No function matches the given name and argument types. You might need to add explicit type casts.
Position: 8
我认为这是因为对 setParameter 的调用无法正常工作,因此没有替换 ?s
有没有其他方法可以使用本机查询来设置参数。
【问题讨论】:
标签: java sql postgresql jakarta-ee jpa