複数の列または式が SELECT ステートメントの選択リストにある場合、状況によっては選択された列の既存の Bean クラスへの自然変換はありませんが、多くの場合、自然変換があります。多くのアプリケーションで、SELECT ステートメントの選択リストは、既存の Bean クラスのインスタンス (その全体または部分) に入れるために必要なデータに正確にアクセスします。
例えば、以下の SELECT ステートメントの選択リストは、Bean クラス com.company.Employee のインスタンスを完全に満たすために必要なデータを提供します。
SELECT EMPNO, FIRSTNME, MIDINIT, LASTNAME, WORKDEPT, PHONENO, HIREDATE FROM HRDept.Employee
Bean は、以下の定義を使用します。
public Employee { @Column(name="EMPNO") public String employeeId; @Column(name="FIRSTNME") public String firstName; @Column(name="MIDINIT") public String middleInitial; public String lastName; @Column(name="WORKDEPT") public String departmentId; @Column(name="PHONENO") public String extension; public Date hireDate; }
ターゲット・クラスの @Column アノテーションは、選択リストの列をそれぞれのプロパティーと関連付けるために必要な情報を提供します。それらのプロパティーは、表 HRDept.Employee 内のそれぞれの列ラベル名と一致するので、lastName または hireDate のいずれかに指定される @Column アノテーションはありません。