查询代码和查询:
ps = conn.prepareStatement("select instance_id, ? from eam_measurement where resource_id in (select RESOURCE_ID from eam_res_grp_res_map where resource_group_id = ?) and DSN like '?' order by 2");
ps.setString(1,"SUBSTR(DSN,27,16)");
ps.setInt(2,defaultWasGroup);
ps.setString(3,"%Module=jvmRuntimeModule:freeMemory%");
rs = ps.executeQuery();
while (rs.next()) { bla blah blah blah ...
Run Code Online (Sandbox Code Playgroud)
返回一个空的ResultSet.
通过基本的调试我发现它的第三个绑定是问题,即
DSN like '?'
Run Code Online (Sandbox Code Playgroud)
我尝试了各种各样的变化,其中最明智的似乎是使用:
DSN like concat('%',?,'%')
Run Code Online (Sandbox Code Playgroud)
但这不起作用,因为我错过'了连接字符串的两边,所以我尝试:
DSN like ' concat('%',Module=P_STAG_JDBC01:poolSize,'%') ' order by 2
Run Code Online (Sandbox Code Playgroud)
但我似乎无法找到一种方法让他们参与其中.
我错过了什么?
我有一个像这样的HQL查询:
Query query = session.createQuery("from User as user where user.joined!=null order by user.joined desc");
Run Code Online (Sandbox Code Playgroud)
如何设置变量User属性作为查询的排序顺序?我的解决方案:
String order = "user.joined";
Query query = session.createQuery("from User as user where user.joined!=null order by :order desc").setString("order", order);
Run Code Online (Sandbox Code Playgroud)
没有给出有序的查询结果。