在对象列表数组中使用jpa nativequery多列
List<Object []> queryList = new ArrayList<>();
String[] arr = {"val1", "val2"};
queryList.add(arr);
String sql = SELECT * FROM TABLE A WHERE (A.COL1, A.COL2) IN (:queryList)
Query query = entityManager.createNativeQuery(sql);
query.setParameter("queryList", queryList);
在postgresql中
SELECT * FROM TABLE A WHERE (A.COL1, A.COL2) IN (('val1', 'val2'), ('val3', 'val4'));
这是个例外
Caused by: org.postgresql.util.PSQLException: ERROR: operator does not exist: record = bytea
建議:No operator matches the given name and argument types. You might need to add explicit type
这可能吗?
1条答案
按热度按时间b4qexyjb1#
我将尝试按以下方式重新构造查询:
这将允许按照以下方式构造查询:
这也将允许在不使用本机的情况下实现查询,这对于维护jpa哲学是明智的。