我在Spring Data JPA上工作,这是一个很棒的库,但你应该先将数据库查找器编写为方法签名,然后再使用。
当我查看Grails时,我发现我没有编写方法签名来使用finder的概念,它有Dynamic finders
Play Framework使用哪种查找程序(静态/动态)?
答案 0 :(得分:2)
根据动态查找器的grails定义,您可以说通过使用带有finder对象的点表示法以动态方式定义游戏框架查找器。所以查询如:
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对象设为私有,然后在Person类中编写具有定义查询的方法签名的方法,如:
public static List<Person> findByName(String name) {
return find.where().eq("name", name).findList();
}
我发现在类的方法中编写所有点符号查询以便更易于维护,尤其是在使用更大的代码库时。
您可以阅读更多相关信息here