Quaere lebih mirip hibernate criteria API yang dibubuhin fluent interface. Gak strong type n penuh magic string dimana2. E.g. Iterable contacts = from("customer").in(customers) .where( and(lt("customer.getDateOfBirth", date17YearsAgo), eq("customer.getAddress().getCountry()", "Indonesia")) select("customer.getContactDetail()");
for (Group group : groups) { } Sama sekali gak strong type. Objective utama yg pengen dicapai dari Linq justru sama sekali gak disentuh: 1. type-safety, compile time check 2. auto-completion 3. refactoring Sebenernya gak terlalu susah buat bikin criteria API yang strong type kayak NHibernate Query Generator dengan ngandalin code-generator. Misalnya kalo di java maybe: Interable contacts = query(customer, Where.Customer.getAddress().getCountry() == "Indonesia" && Where.Customer.getDateOfBirth < date17YearsAgo) .select("getContactDetail()"); Ini cuma wrapper di atas criteria APInya Hibernate, yang bikin strong-type fluent-interface yang suitable dengan rigid language kayak java dan .net versi awal2 banget sebelom era Linq. API kayak gini lebih mendekati Linq daripada Quaere (at least 3 objectives strong-type tercapai). Dan gw masih gak ngerti napa ini gak pernah diimplement di Hibernate, padahal dah jelas betapa ridiculousnya pain di HQL dan criteria API. NHibernate Query Generator sendiri sekarang dah deprecated dan diabandon sejak LINQ. E.g. (C#) Enumerable<ContactDetails> contacts = from customer in customers where customer.Address.Country == "Indonesia" && customer.DateOfBirth < date17YearsAgo select customer.ContactDetail; Jadi sebenernya hype Quaere sebagai java's Linq adalah menyesatkan n overstatement. Objective yang pegen dicapai malah gak kesentuh. Tapi at least benefitnya: 1. fluent syntax yg much better dibanding criteria API 2. persistence ignorance. Kayak Linq, bisa query ke jdbc, orm, array/list, xml, ldap. Code lo completely agnostic terhadap storage infrastructre yg dipake. Ini common banget dipake buat agile practice yg develop tanpa database (cuma pake object list) sampe deket2 mature stage baru DB dan ORM comes into play. Dan of course buat TDD juga. Anyway, internal DSL pake static language emang limited. Language kayak Linq cuma bisa diachieve dengan external DSL. Misalnya pake ANTLR (kayak HQL), ato bikin Java compiler baru. 2009/5/26 OsCaRz <junz_mis...@yahoo.com.sg> > > > Halo... > > Ada yang pernah menggunakan Quaere. Mohon reviewnya. Terus kalau mau > digunakan buat query MySql gimana ya? Terima kasih... > > >