WhereCondition combineWhereConditions(String combineOp, WhereCondition cond1, WhereCondition cond2, WhereCondition... condMore) { StringBuilder builder = new StringBuilder("("); List<Object> combinedValues = new ArrayList<Object>(); addCondition(builder, combinedValues, cond1); builder.append(combineOp); addCondition(builder, combinedValues, cond2); for (WhereCondition cond : condMore) { builder.append(combineOp); addCondition(builder, combinedValues, cond); } builder.append(')'); return new WhereCondition.StringCondition(builder.toString(), combinedValues.toArray()); }
public void testEqByteArray() { ArrayList<TestEntity> inserted = insert(3); TestEntity testEntity = inserted.get(1); byte[] byteArray = {96, 77, 37, -21}; testEntity.setSimpleByteArray(byteArray); dao.update(testEntity); // Unsupported: Query<TestEntity> query = dao.queryBuilder().where(Properties.SimpleByteArray.eq(byteArray)).build(); // Works, but probably voids any index on BLOBs (Note: there's no hex2blob function and X'?' is bad syntax): // String conditionString = "HEX(" + Properties.SimpleByteArray.columnName + ")=?"; // WhereCondition condition = new WhereCondition.StringCondition(conditionString, SqlUtils.toHex(byteArray)); String conditionString = Properties.SimpleByteArray.columnName + '=' + SqlUtils.escapeBlobArgument(byteArray); WhereCondition condition = new WhereCondition.StringCondition(conditionString); Query<TestEntity> query = dao.queryBuilder().where(condition).build(); TestEntity testEntity2 = query.uniqueOrThrow(); assertEquals(testEntity.getId(), testEntity2.getId()); // Unsupported: query.setParameter(0, new byte[]{96, 77, 37, -21, 99}); // Unsupported: assertNull(query.unique()); }
WhereCondition combineWhereConditions(String combineOp, WhereCondition cond1, WhereCondition cond2, WhereCondition... condMore) { StringBuilder builder = new StringBuilder("("); List<Object> combinedValues = new ArrayList<Object>(); addCondition(builder, combinedValues, cond1); builder.append(combineOp); addCondition(builder, combinedValues, cond2); for (WhereCondition cond : condMore) { builder.append(combineOp); addCondition(builder, combinedValues, cond); } builder.append(')'); return new WhereCondition.StringCondition(builder.toString(), combinedValues.toArray()); }