Ищем язык запросов для работы с Java-объектами. Найден MQL (Mule Query Language).
Это в бета-версии, я не нашел много документации. попробовал пару вещей, например, где предложение и выберите предложение. Но пункт заказа не работает.
List users = new ArrayList();
users.add(new User("Dan", "Dan.Diephouse@gmail.com",2,13000 , address));
address = new Address("International pkway","Atlatna","GA","USA");
users.add(new User("Joe", "Joe.Sales@yahoo.com", 1,14000, address));
users.add(new User("John", "John@yahoo.com", 1,16000, address));
users.add(new User("Scott", "scott@yahoo.com", 1,15000, address));
users.add(new User("Andy", "andy@abc.com", 1,7000, address));
Query query = new QueryBuilder()
.as("p")
.orderby("income")
// .max(3)
.where(eq(property("companyId"), 1))
.select(newObject()
.set("name", "name")
.set("income", "income")
.set("email", "email")).build();
Collection result1 = query.execute(users);
Пожалуйста, дайте мне знать, если кому-то повезет, играя с MQL, или предложите любую другую хорошую среду для запросов к объектам Java.
Another error – when the result set is not hashmap.
Exception in thread “main” java.lang.ClassCastException: com.mql.test.User cannot be cast to java.util.Map
at com.mulesoft.mql.impl.OrderByComparator.compare(OrderByComparator.java:11)
at java.util.Arrays.mergeSort(Arrays.java:1270)
at java.util.Arrays.sort(Arrays.java:1210)
at java.util.Collections.sort(Collections.java:159)
at com.mulesoft.mql.Query.order(Query.java:214)
at com.mulesoft.mql.Query.execute(Query.java:189)
List persons = getPersons();
Query query = new QueryBuilder()
// .where(and(eq(property(“division”), “Sales”),
// eq(property(“firstName”), “Joe”)))
.orderby(“income”)
.max(3)
.build();