一尘不染

JPA本机查询中的位置参数问题

hibernate

我正在尝试做:

String sql = "SELECT email FROM users WHERE (type like 'B') AND (username like '?1')";
List results = em.createNativeQuery(sql).setParameter(1, username).getResultList();

但是我得到了IllegalArgumentException,它告诉我参数超出范围。我究竟做错了什么?


阅读 265

收藏
2020-06-20

共1个答案

一尘不染

参数周围不应有引号。尝试以下方法:

String sql = "SELECT email FROM users WHERE (type like 'B') AND (username like ?1)";

您可能还需要仔细检查您的真实意思,type like 'B'因为这可能并没有按照您的想象做。

2020-06-20