我想将 oracle 存储过程重写为 java 代码,以选择查询字符串中具有串联值的数据以通过以下方式进行比较:
Query qString =
"SELECT Obj " +
"FROM MyTable Obj2 WHERE ( Obj2.value1 || Obj2.value2 ) in " +
"(SELECT Obj2.value1 || MAX(Obj2.value2) FROM MyTable Obj2 WHERE Obj2.value2 >= :param GROUP BY Obj2.value1) " +
"ORDER BY Obj.value2, Obj.value1";
query = entityManager.createQuery(qString);
query.setParameter("param ", param );
当我在 weblogic 服务器上将查询作为 web 服务运行时,我遇到了“|”错误特点。 我可以用什么代替 ||运算符得到相同的结果?
最佳答案
Java 持久性查询语言提供了 CONCAT () 函数,所以你应该可以写 Obj2.value1 || Obj2.value2
作为 CONCAT(Obj2.value1, Obj2.value2)
关于java - Entitymanager java 查询中 '||' (concat) 的等价物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19703000/