我正在使用Dollar quote(即$xx$
)进行查询,并在输入内部有哈希字符(#
)时获取异常。
select * from tbl_abc where col_x = $xx$#$xx$
^
例外是:
Internal Exception: org.postgresql.util.PSQLException: The column index is out of range: 1, number of columns: 0.
Error Code: 0
Call: select * from tbl_abc where col_x = $xx$?
bind => [1 parameter bound]
我可以在错误消息中看到?
个字符,但我在查询中没有这个字符。这是我的java代码:
String query = "select * from tbl_abc where col_x = $xx$#$xx$";
Query nativeQuery = em.createNativeQuery(query, Abc.class);
List<Abc> abcList = nativeQuery.getResultList();
仅供参考:当我使用'#'
代替$xx$#$xx$
时,它运作顺畅。我的查询也很好地从postgres
控制台运行。
如何从JPA中为$ quote引用#
字符?
我将Java
与Eclipselink
一起使用,数据库为Postgres
。