簡體   English   中英

JPA本機查詢中的位置參數問題

[英]Problem with positional parameters in JPA native query

我正在嘗試:

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

但我得到IllegalArgumentException,它告訴我參數超出范圍。 我究竟做錯了什么?

參數周圍沒有引號。 試試這個:

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

你可能還想仔細檢查一下你是否真的意思type like 'B'這樣的type like 'B'因為這可能不符合你的想法。

a)為什么要使用本機SQL進行這樣的簡單查詢? 使用JPQL。
b)為什么要使用,如果你不使用通配符? 使用=代替。

String jpql =
  "SELECT u.email FROM users u WHERE (u.type = 'B') AND (u.username = '?1')";

List results = 
    em.createQuery(jpql)
      .setParameter(1, username)
      .getResultList();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM