【发布时间】:2014-04-20 23:38:20
【问题描述】:
编辑:
我将硬编码查询更改为:
query.setParameter("desc", "%unplug //your// server... enjoy the freedom%" ESCAPE '//')
现在我收到了com.sun.jdi.InvocationException occurred invoking method.
也没有产生堆栈跟踪。
我的 PostgreSQL 数据库中有一个描述列,我正在尝试使用“LIKE”子句对其进行查询,但是我无法获得任何结果。这是一个例子:
Query query = em.createQuery("from MyClass c WHERE c.description LIKE :desc");
query.setParameter("desc", "%unplug /your/ server... enjoy the freedom%");
在数据库中,我有许多包含上述文本子字符串的描述。我做了很多研究并研究了转义特殊字符等,但没有任何效果。
我错过了一些东西,我无法弄清楚那是什么。
【问题讨论】:
-
你的描述真的包含“/your/”吗?当你改用
%e%时发生了什么? -
是的,确实如此。它是带有一些不寻常标记的抓取文本。当你问我是否尝试过 %e% 时,你的意思是字面意思“%e%”还是转义序列
%E? -
不,我的意思是字面意思
%e%。我确定你有一个数学描述 %e%。我不太确定你有一个匹配你的长参数。如果查询与%e%一起使用,则表示您的参数错误。如果它不适用于%e%,那么您将不得不在其他地方寻找原因。 -
当我重新开始工作时会玩它。感谢您的建议
-
你得到了什么异常似乎 select c from MyClass c 是查询的正确开始
标签: java sql postgresql jpa jpql