私はSpring Data JPAに取り組みました。これは素晴らしいライブラリですが、使用する前にデータベース ファインダーをメソッド シグネチャとして記述する必要があります。
Grails を見てみると、ファインダを使用するためにメソッド シグネチャを記述する必要がないという概念が見つかりました。動的ファインダがあります。
Play Framework はどのようなファインダー (静的/動的) を使用しますか?
私はSpring Data JPAに取り組みました。これは素晴らしいライブラリですが、使用する前にデータベース ファインダーをメソッド シグネチャとして記述する必要があります。
Grails を見てみると、ファインダを使用するためにメソッド シグネチャを記述する必要がないという概念が見つかりました。動的ファインダがあります。
Play Framework はどのようなファインダー (静的/動的) を使用しますか?
grails の動的ファインダーの定義によると、プレイ フレームワークのファインダーも、ファインダー オブジェクトでドット表記を使用することによって動的に定義されていると言えます。したがって、次のようなクエリです。
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();
}
クラスのメソッド内にすべてのドット表記クエリを記述すると、特に大規模なコード ベースで作業している場合は、保守が容易になることがわかりました。
ここでもう少し詳しく読むことができます