Bu senaryoda varlık X & P ile ilişkisini nasıl oluşturabilirim? ve ek açıklama kullanımı? Java: JPA Entity @OneToMany
P öğesi, 1 PT ve xs (x listesi) içerir.
@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 PTST dayalı bir filtreden ST listesi (ST & PT bağlantı tablosu) ve PV saklanan P değerlerini katılmak bıraktı.
Tablo FV, p_id, st_id, val.örnek:
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
beklenen çıkışı:
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
anda ben verilerini
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
sonra çıktı almak için sorgu altında kullanıyorum
p_id: 1, st_id: 1 t: A val: 1a
p_id: 1, st_id: 3 t: C val: NULL
herhangi bir tavsiye? teşekkür ederim.
Güncelleme:
sorgu yukarıda elle bunu (artık yerli sorgu) otomatik hale getirmek isteyen bir kirli varlık X için veri almak edilir.
Update2:
@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;
}
Sorunuz oldukça anlaşılmaz. Lütfen [Nasıl Sorulur] bölümüne bakın (http://stackoverflow.com/help/how-to-ask). –
@Nicholas soru güncellendi, tekrar öneride bulunun. teşekkür ederim. – user5917360
PT ve X sınıfı tanımı nerede? –