複数の列または式が 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 アノテーションはありません。