/** * @return an {@link Order} that sorts by this field's value in the order specified by the array of values */ public Order byArray(TYPE[] order) { return Order.byArray(this, order); } }
/** * @return an {@link Order} that sorts by this field's value in the order specified by the array of values */ public Order byArray(TYPE[] order) { return Order.byArray(this, order); } }
public void testOrderByField() { TestModel one = new TestModel().setFirstName("Sam").setLastName("Bosley"); TestModel two = new TestModel().setFirstName("Kevin").setLastName("Lim"); TestModel three = new TestModel().setFirstName("Jonathan").setLastName("Koren"); database.persist(one); database.persist(two); database.persist(three); String[] nameOrder = new String[]{"Kevin", "Sam", "Jonathan"}; SquidCursor<TestModel> nameOrderCursor = database.query(TestModel.class, Query.select(TestModel.PROPERTIES) .orderBy(Order.byArray(TestModel.FIRST_NAME, nameOrder))); try { assertEquals(3, nameOrderCursor.getCount()); for (nameOrderCursor.moveToFirst(); !nameOrderCursor.isAfterLast(); nameOrderCursor.moveToNext()) { assertEquals(nameOrder[nameOrderCursor.getPosition()], nameOrderCursor.get(TestModel.FIRST_NAME)); } } finally { nameOrderCursor.close(); } Long[] idOrder = new Long[]{3L, 1L, 2L}; SquidCursor<TestModel> idOrderCursor = database.query(TestModel.class, Query.select(TestModel.PROPERTIES) .orderBy(Order.byArray(TestModel.ID, idOrder))); try { assertEquals(3, idOrderCursor.getCount()); for (idOrderCursor.moveToFirst(); !idOrderCursor.isAfterLast(); idOrderCursor.moveToNext()) { assertEquals(idOrder[idOrderCursor.getPosition()], idOrderCursor.get(TestModel.ID)); } } finally { idOrderCursor.close(); } }