1
我有一個courier_routes表,它有兩個外鍵到一個位置表。 courier_routes表中的列是start_location_id和end_location_id。 (我正在使用Oracle)JPA中的多列不一致
我想查找courier_routes表中所有不同的位置信息。
考慮這個例子
|id |start_location_id| end_location_id|...
|1|1|2|
|2|1|3|
|3|4|5|
|4|2|1|
我想找回ID爲1 2 3 4 5
我的SQL的作品是
SELECT loc FROM (
SELECT start_location_id AS loc FROM courier_routes
UNION
SELECT end_location_id AS loc FROM courier_routes);
我想翻譯成JPA這一點。 Hibernate不支持工會,所以我想到做子查詢。問題在於它可能會影響性能。
我想的是像(僞代碼...)
SELECT id FROM locations where id in (
(SELECT start_location_id FROM courier_routes)
OR
(SELECT end_location_id FROM courier_routes));
是否有更簡單的方法?這張表會變大,所以我真的不想使用子查詢。
我應該通過在一個集合中添加兩個單獨的查詢結果來在java中進行聯合嗎?
感謝
我會測量每個這些解決方案所花費的時間(包括使用本機SQL查詢的解決方案),並選擇最佳的解決方案。我猜想最後一個建議的解決方案(兩個查詢)是Oracle在涉及兩個子查詢的查詢時會自行完成的。 –