2011-11-16 70 views
3

我需要使用Hibernate查詢來比較來自2個不同表的字段。如何使用Hibernate比較兩個不同表中的字段?

表A有一個由sectionId(例如1900)組成的字段。

表B有一個由userId/sectionId組成的字段(例如e1230-12w11-3ewq-qg22-34qa/1900)。

我需要從表B中提取sectionId並將其與表A中的sectionId進行比較,以便我可以爲新表構建一行。我還需要從表B中提取userId,並將其用作此新行的一部分。

hql是否有能力部分比較字段?

+1

您是否檢查過SUBSTRING(...)函數並自己比較了ID的必需部分(=)? –

+0

謝謝Nowicki :)。子字符串只允許我使用它們的索引提取字符串。如果我可以使用「/」來標識有兩個不同的字符串,那將是非常好的。你有什麼主意嗎?歡呼聲 – Best

+0

我已經總結了這裏所說的以及第二個問題到單獨帖子的答案。 –

回答

2

我認爲你可以使用JPQL functions做到這一點:SUBSTRINGLOCATE

LOCATE將能夠找到輸入字符串中的特定字符,並將返回它的位置。
然後,你應該可以使用SUBSTRING根據LOCATE返回的索引僅返回一部分字符串。