Play Framework是否使用"动态查找器"

时间:2015-08-18 10:13:56

标签: playframework-2.0 dynamic-finders

我在Spring Data JPA上工作,这是一个很棒的库,但你应该先将数据库查找器编写为方法签名,然后再使用。

当我查看Grails时,我发现我没有编写方法签名来使用finder的概念,它有Dynamic finders

Play Framework使用哪种查找程序(静态/动态)?

1 个答案:

答案 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