0
我嘗試解釋這個問題。我有多對多關係的實體JPA + HIBERNATE:多對多關係中的笛卡爾積
@Entity
@Table(name="TABLE1")
public class Table1 implements Serializable {
...
//bi-directional many-to-many association to Table1
@ManyToMany
@JoinTable(
name="TABLE2"
, joinColumns={
@JoinColumn(name="ID_ELEMENTS1")
}
, inverseJoinColumns={
@JoinColumn(name="ID_ELEMENTS2")
}
)
private List<Table1> elements;
//bi-directional many-to-many association to Table1
@ManyToMany(mappedBy="elements")
private List<Table1> elementOf;
...
}
db表如下:
TABLE1
ID ...
55499 ...
55498 ...
55497 ...
TABLE2
ID_ELEMENTS1 ID_ELEMENTS2
55499 55498
55499 55497
當我嘗試執行以下JPQL查詢
SELECT
t
FROM
Table1 t
LEFT JOIN FETCH t.elementOf
WHERE
t.id = 55499
結果與元素的數組列表( ID爲55499),每個元素都有一個包含兩個元素的數組列表(一個ID爲55498,另一個ID爲55497)。我想要得到的結果是一個元素(ID爲55499)與兩個元素的數組列表(一個ID爲55498,另一個ID爲55497)。 我希望我很清楚。你能幫我優化java對象結果嗎(我依稀記得eclipselink中的QueryHints.BATCH)?
我愛你!!!!! – Fra83