7
私はこのようなクラスを持っています。私は、以下に示す2つのデータベーステーブルからそれを設定する必要があります。これを行うための好ましい方法はありますか?JDBCテンプレート - 1対多
私はDAOからResultSetExtractor
でList<>
を選択するサービスクラスを考えています。その後、そのリストにforeach
を追加し、別のResultSetExtractor
を介して個人のメールのList<>
を選択し、foreach
ループから添付します。
良い方法がありますか、それとも得意なのですか?
public class Person {
private String personId;
private String Name;
private ArrayList<String> emails;
}
create table Person (
person_id varchar2(10),
name varchar2(30)
);
create table email (
person_id varchar2(10),
email varchar2(30)
);
これは素晴らしいです。以前のプロジェクトでこれをやり遂げて欲しいです。最後の行が何をしているのか教えていただけますか?私はその部分に従うかどうか分からない。 – EdgeCase
クエリの結果としておそらく望むものは 'Map'ではなく、人物の集まりなので、マップから値を取得するだけです。詳細については 'Map.values()'のjavadocを読んでください。 –
または、 'java.util.Set' を使用できます。ここで 'class Person {public boolean equals(Object o){return id ==(Person)o.id; public int hashCode(){戻り値id.hashCode(); 'Map.values()'の呼び出しを避けることができます。これは、パフォーマンスと可読性の目的でもっと望ましいかもしれません。 –
juanchito