Согласно определению динамических искателей грааля, вы можете сказать, что искатели игрового каркаса также определяются динамически, используя точечную нотацию с объектом поиска. Таким образом, запрос, такие как:
SELECT * FROM PERSON WHERE name = 'Fred'
бы быть созданы как так
public class Person extends Model {
public Integer id;
public String name;
public static Finder<Integer,Person> find = new Finder<Integer,Person>(
Integer.class, Person.class);
}
и вы бы написать дот-нотации запрос где-либо, как
List<Person> people = Person.find.where.eq("name", "Fred").findList();
В качестве альтернативы вы можете сделать Объект Finder private, а затем методы записи в классе Person, у которых есть сигнатуры методов, определяющие запрос, такой как:
public static List<Person> findByName(String name) {
return find.where().eq("name", name).findList();
}
Я нахожу, что писать все точечные запросы в методах класса для большей поддержки, особенно если вы работаете с большей базой кода.
Вы можете прочитать немного больше об этом here
+1, но я не могу принять ваш ответ, как я вижу некоторые вещи, как 'Book.findByLastName' отличаются от сочинительства некоторые искатель свойства, а затем использовать синтаксис как' Person.find.where.eq («name», «Fred»). FindList() ' –
BTW, я начинаю смотреть на Slick http://slick.typesafe.com/doc/3.0.2/introduction.html#functional -реляционное сопоставление, и я считаю, что это выглядит многообещающе. –
Play + Slick https://www.playframework.com/documentation/2.4.x/PlaySlick –