1

JPAでこれを行うにはどうすればよいですか??

データベース:

School
------
id int PK
name varchar
state int FK (State(id))

State
-----
id int PK
desc varchar

ジャワ:

SchoolShow
----------
int id;
String name;
int iState;
String sState;

コード:

select sc.name, st.desc from school sc, state st where st.id=sc.state and sc.id=?

while(rs.hasNext()){
    SchoolShow ss=new SchoolShow();
    ss.setName(rs.getString("name"));
    ss.setSState(rs.getString("desc"));
}

¿さまざまなテーブルのプロパティを持つ @Entity を使用できますか?

前もって感謝します!!

4

1 に答える 1

1

SchoolおよびStateテーブルのエンティティを作成し、エンティティの属性で@ManyToOneリレーションを使用して状態を参照する必要があります。stateSchool

次に、学校から州への関係をナビゲートして、次のようにクエリできます。

List result = em.createQuery("SELECT sc.name, sc.state.desc FROM School sc").getResultList(); 

リストの各要素はObject[]. それらを繰り返し処理し、値を DTO に割り当てる必要があります。

型安全性と煩雑さを軽減するために、JPA コンストラクター式を使用することもできます。

List<DTO> dtos = em.createQuery("SELECT NEW com.example.DTO( sc.name, sc.state.desc) FROM School sc").getResultList();

DTO 型には、関連するすべての属性を持つコンストラクターが必要です。

于 2013-04-24T11:37:40.460 に答える