使用UUID将SQL转换为JPQL
我试图使用JPQL来检索使用UUID类型ID的消息 这是正确的SQL语句使用UUID将SQL转换为JPQL,sql,jpql,uuid,Sql,Jpql,Uuid,我试图使用JPQL来检索使用UUID类型ID的消息 这是正确的SQL语句 SELECT * FROM C2_MESSAGES WHERE ID = x'a9181d1c429a4b67b1379bc9ee6a68e7'; 我试过这个的不同变体 UUID uid = UUID.fromString(c2MessageId); String messageQuery = "SELECT DISTINCT msg FROM C2Message msg WHERE msg.id = " + ui
SELECT * FROM C2_MESSAGES WHERE ID = x'a9181d1c429a4b67b1379bc9ee6a68e7';
我试过这个的不同变体
UUID uid = UUID.fromString(c2MessageId);
String messageQuery = "SELECT DISTINCT msg FROM C2Message msg WHERE msg.id = " + uid;
如果有人有任何建议,我将不胜感激 带单引号的转义字符串
”
:
String messageQuery = "SELECT DISTINCT msg FROM C2Message msg WHERE msg.id = '" + uid + "'";
在Sql中,如果出现以下情况,最好使用单引号转义字符串 用双引号编写查询 这可以避免许多错误。 请尝试此代码,它应该可以工作:
String query = "SELECT DISTINCT msg FROM C2Message msg WHERE msg.id ='"+uid+"'";
不要连接字符串。使用准备好的语句或查询参数
queryq=em.createQuery(“从消息m中选择m,其中m.id=:id”);q、 设置参数(“id”,uid)代码>这降低了有人重构类并将uid真正作为字符串(SQL注入)注入的风险,尝试了相同的方法,但从jpql中获得强制转换异常。尝试将uuid与“uuid”匹配。它对你有用吗?