2 回答
TA貢獻(xiàn)1839條經(jīng)驗(yàn) 獲得超15個(gè)贊
BorhSet是空的,可能是因?yàn)?code>current_dateis null。在這種情況下,兩個(gè)謂詞都解析為false。發(fā)生這種情況是因?yàn)?hibernate 無(wú)法解析名為 的列current_date并將其設(shè)置為 null。
您可以通過(guò)使用 subselect 來(lái)解決這個(gè)問(wèn)題,因?yàn)?code>clause它只是一個(gè)在創(chuàng)建查詢時(shí)粘貼到內(nèi)部的 sql 謂詞where(這取決于您使用的數(shù)據(jù)庫(kù)):
@Where(clause = "date < (select * from current_date())")
或者在某些數(shù)據(jù)庫(kù)中更短:
@Where(clause = "date < (select current_date())")
PS:在我看來(lái),這不是一個(gè)好的設(shè)計(jì)。測(cè)試更加困難,并且使得與這些集合有關(guān)的每個(gè)查詢都不可預(yù)測(cè)(相同的查詢可能會(huì)根據(jù)運(yùn)行時(shí)間產(chǎn)生不同的結(jié)果)。
TA貢獻(xiàn)2003條經(jīng)驗(yàn) 獲得超2個(gè)贊
我有相同的關(guān)聯(lián)(實(shí)際上是相同的 FK 列)映射多次 - 但因?yàn)?Hibernate 知道這是相同的 FK,所以它認(rèn)為它們是相同的。
在調(diào)試Hibernate生成的SQL時(shí)發(fā)現(xiàn)的。
本質(zhì)上,這在實(shí)體上是不可能的
添加回答
舉報(bào)
