我正在尝试:
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)";
你可能还想仔细检查一下你是否真的意思是’B’这样的类型,因为这可能不符合你的想法.