エンティティを構築する方法X &このシナリオでPとの関係は?とアノテーションの使用?Java:JPAエンティティ@OneToMany
エンティティPでは、1つのPTとxs(xのリスト)があります。
@Entity
public class P {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@OneToOne
@JoinColumn(name = "pt_id")
private PT pt;
@OneToMany
private List<X> xs;
...
}
@Entity
public class PT {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private String name;
}
XS濾過STリストPTST(ST & PTのリンクテーブル)、 に基づいてPVに格納されたPの値を結合残されます。
テーブルPVでは、p_id、st_id、valがあります。
例:
P:
id pt_id
1 1
2 2
3 1
PT:
id name
1 pt-1
2 pt-2
ST
id t
1 A
2 B
3 C
4 D
5 E
PTST
pt_id st_id
1 1
1 3
2 1
2 2
PV
p_id st_id val
1 1 1a
2 2 2b
予想される出力:
P = 1
p_id st_id st_t val
1 1 A 1a
1 3 C NULL
P = 2
p_id st_id st_t val
2 1 A NULL
2 2 B 2b
は、現在、私はデータ
select st.id as st_id, st.t, :p2 as p_id, pv.val
from PTST ptst
inner join ST st on (st.id = ptst.st_id)
left join PV pv on (pv.p_id = :p1 and pv.st_id = ptst.st_id)
where PTST.pt_id = :p3
その後、出力を取得するには、クエリの下に使用してい
p_id: 1, st_id: 1 t: A val: 1a
p_id: 1, st_id: 3 t: C val: NULL
アドバイスはありますか?ありがとうございました。
更新:
上記のクエリを手動で私はそれを自動化したい汚れエンティティX(これ以上のネイティブクエリ)のデータを取得します。
アップデート2:
@Entity
@Table(name = "PV")
public class X{
@EmbeddedId
private Y id = new Y();
@Column(updatable = false, insertable = false)
private String st_t;
private String val;
}
@Embeddable
public class Y implements Serializable {
@Column(updatable = false)
private int p_id;
@Column(updatable = false)
private int st_id;
}
あなたの質問はかなり理解できません。 [How To Ask](http://stackoverflow.com/help/how-to-ask)を参照してください。 –
@Nicholasの質問が更新されました。もう一度アドバイスしてください。ありがとうございました。 – user5917360
ここで、PTとXクラスの定義は何ですか? –