S2Dao テーブル結合してデータ取得する方法
S2Daoにて、複数テーブルを結合して、データ取得する方法をメモしておきます。ネット上の情報を見ればわかる話ですが、自分なりに気になったポイントを記述しておきます。
いくつもやり方があるようです。まずSQL文ですが、Sqlアノテーションで記述する方法と、sqlファイルを用意する方法があります(他にもあるかも)。データベースから取得した値を保持する方法は、既存のエンティティクラスを使用する方法と、別途Dtoクラスを作成する方法があります(これも何とでもやり方がありそう)。私は、お手軽に作成するため、Sqlアノテーションと、既存エンティティクラスにデータ追加する方法を試しました。
概要
詳細
Daoクラス。テーブル結合してproject.nameを取得するようにしました。このカラムにユニークな名前"projectName"を付けました。
@Sql("select document.*, project.name as projectName from document join project on document.project_id = project.id order by project.name, name") public Document[] selectAll();
Documentエンティティクラス。上記で付けたユニークな名前"projectName"と同一のプロパティを追加しました。
public String projectName;