как построить объект X & его отношение к P в этом сценарии? и использование аннотаций?Java: JPA Entity @OneToMany
Entity 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;
}
хз является отфильтрованный список ST на основе PTST (ссылка таблица ST & PT), и оставили присоединиться значения P, хранящиеся в PV.
Таблица 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
любой совет? Спасибо.
Update:
запрос выше вручную получить данные для нечистого объекта X, который я хочу, чтобы автоматизировать его (не более родной запрос).
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;
}
Ваш вопрос довольно непонятен. См. [How To Ask] (http://stackoverflow.com/help/how-to-ask). –
@ Николас вопрос обновлен, ум совет снова. Спасибо. – user5917360
где - определение класса PT и X? –