名前のリストがあります:List<Name>
にName
は、次の 2 つのメソッドがあります。
toString()
「名前: トム」を返しますgetName()
「トム」を返します
特定の名前を持つ人物をデータベースに照会するには、次のようにします。
// Query a single database entry
Query query = em.createQuery("FROM person WHERE name = :name");
query.setParameter("name", names.get(0).getName());
複数のエントリを照会したい場合 (これを使用して、次のWHERE ... IN (...)
ことを行う必要があります。
// Convert the list of name instances to a list of strings
List<String> nameStrings = new ArrayList<String>(names.size());
for (Name name : names) {
nameStrings.add(name.getName());
}
// Query multiple database entries
Query query = em.createQuery("FROM person WHERE name in (:name)");
query.setParameter("name", nameStrings); // JPA
query.setParameterList("name", nameStrings); // Hibernate
2 番目のリストを作成する必要がありますか? 私はむしろこれをしたい:
// Query a single database entry
Query query = em.createQuery("FROM person WHERE name = :name");
query.setParameter("name", names.get(0));
と
// Query for multiple database entries
Query query = em.createQuery("FROM person WHERE name in (:name)");
query.setParameter("name", names); // JPA
query.setParameterList("name", names); // Hibernate