今天在使用hibernate查詢的時(shí)候,遇到一個(gè)開始比較迷惑的問(wèn)題。問(wèn)題大概意思描述如下:
如數(shù)據(jù)表test,有test_name,home_addr等字段,對(duì)應(yīng)的hbmh和pojo中,忘記新增屬性home_addr。
開始使用如下hql: from TestModel as t where t.testName=? and t.homeAddr = ?
運(yùn)行出錯(cuò):提示沒有對(duì)應(yīng)的homeAddr屬性。
把hql改成如下: from TestModel as t where t.testName=? and home_addr=? 即可運(yùn)行。
但如下hql: from TestModel as t where t.test_name=? and home_addr=? 出錯(cuò)了
from TestModel as t where testName=? and home_addr=? 出錯(cuò)了
結(jié)論如下:hql支持根據(jù)屬性和物理字段的混排,屬性可直接使用,或者用“pojo別名.屬性”,但物理字段只能直接使用,不能使用“pojo別名.物理字段”。如果使用pojo別名,則不能直接使用屬性,必須用“pojo別名.屬性”。
呵呵,繞了半天,有點(diǎn)意思。
但是我還是不明白你說(shuō)的:屬性和物理字段的混排是什么意思!
pojo是數(shù)據(jù)庫(kù)持久層的傳輸對(duì)象,一般都是用別名+屬性,來(lái)獲取它的值
那為什么又多出個(gè)物理字段呢?
請(qǐng)幫忙解答一下