私の答えは遅すぎるかもしれませんが、参考のためにこれを試してみてください:
XpcSecurity credentials = ud.getCredentials();
Xpc xpc = new Xpc(credentials);
xpc.start("training.getEmployees","select");
StringBuffer whereClause = new StringBuffer();
//In xpc this is the equivalent of "id between idLower and idUpper"
whereClause.append("<whereClause>\n");
whereClause.append(" <expr op='and' returnType='char'>\n");
whereClause.append(" <expr op='ge' returnType='char'>\n");
whereClause.append(" <operand>id</operand>\n");
whereClause.append(" <operand type='literal'>"+idLower+"</operand>\n");
whereClause.append(" </expr>\n");
whereClause.append(" <expr op='le' returnType='char'>\n");
whereClause.append(" <operand>id</operand>\n");
whereClause.append(" <operand type='literal'>"+idUpper+"</operand>\n");
whereClause.append(" </expr>\n"); whereClause.append(" </expr>\n");
whereClause.append("</whereClause>\n");
xpc.input(whereClause);
XData result = xpc.run();
テーブル結合の場合:
すでに xpc クラスを使用しているようです。このクラスでは、これを初期化関数に入れます。
mapEntity("training.getEmployees");
addLevel("employees");
mapTable("employee", "employee", null);
mapColumn("employee_id", "employeeId", "employeeId", true, false);
mapColumn("first_name", "firstName", "firstName", false, false);
mapColumn("last_name", "lastName", "lastName", false, false);
mapTable("time_track", "timeTrack", null);
mapColumn("time_track_id", "timeTrackId", "timeTrackId", true, false);
mapColumn("time_in", "timeIn", "timeIn", false, false);
mapColumn("time_out", "timeOut", "timeOut", false, false);
mapColumn("employee_id", "employeeId", "employeeId", false, false);
addJoin("employee", "employeeId", "timeTrack", "employeeId");
これは Select * from employee a internal join time_track b on a.employee_id = b.employee_id と同等です
そして、選択時に条件を適用できるようになりました