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

Eld*_*Mor 6 java sql hibernate jpa

我正在尝试:

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

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

Mar*_*ers 8

参数周围没有引号.试试这个:

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

您可能还想仔细检查您的真实含义,type like 'B'因为这可能与您认为的不同.

  • 喜欢匹配通配符模式.'B'是没有通配符的字符串.use =而不是like (2认同)