基本上,我认为扭矩标准不适合这种类型的查询。首先,您要选择特定的列。Criteria 通常用于为查询表选择扭矩对象。您可以使用村庄记录选择特定列,因此实际上可以使用标准选择自定义列,但很麻烦*。其次,也是最重要的,我不相信左连接是可能的。标准设置为基本上将 JOIN 用作子查询 AFAIK。
使用基本条件“join”的示例子查询将是
Criteria criteria = new Criteria();
criteria.add(TABLEA.COLUMNA,somevalue);
criteria.add(TABLEB.COLUMNA,somevalue);
criteria.addJoin(TABLEA.COLUMNB,TABLEB.COLUMNB);
TABLEA.doSelect(criteria);
这将从表 A 中选择条目,其中表 B 列 a = 某个值,表 a 列 b = 表 b 列 b。
总而言之,我只推荐直接查询过于复杂的标准。
public static List<Object> doDynamicQuery(String dynamicQuery){
Connection connection = null;
try{
connection = Torque.getConnection(Torque.getDefaultDB());
connection.setReadOnly(true);
PreparedStatement statement = connection.prepareStatement(dynamicQuery);
ResultSet set = statement.executeQuery();
QueryDataSet dataSet = new QueryDataSet(set);
return BasePeer.getSelectResults(dataSet);
}
catch(Exception e){
log.error(e);
return null;
}
finally{
Torque.closeConnection(connection);
}
}