關(guān)于hibernate我想大家都不會(huì)陌生,是一個(gè)很老的用戶(hù)比較多的對(duì)象關(guān)系映射的框架,那么大家一定知道,對(duì)應(yīng)每一個(gè)實(shí)體類(lèi)都會(huì)有一個(gè)配置文件。
而前兩天我遇到的問(wèn)題,就和配置文件有關(guān)。
準(zhǔn)確的說(shuō)是跟這個(gè)配置文件中配置主鍵有關(guān)。
真的很坑,很坑啊!
hibernate的實(shí)體類(lèi)配置文件中一定要有相應(yīng)實(shí)體類(lèi)對(duì)應(yīng)的主鍵,且這個(gè)主鍵不唯一。
那么如果他對(duì)應(yīng)的是數(shù)據(jù)庫(kù)表,那么該表一定有一個(gè)主鍵,這不是問(wèn)題。
那么如果對(duì)應(yīng)的視圖呢?
當(dāng)然,hibernate也有辦法,就是啟用聯(lián)合主鍵。如下圖
但是這種方式存在一個(gè)問(wèn)題,如果聯(lián)合主鍵中有一個(gè)主鍵的值為空,那么久查不出他為空的數(shù)據(jù),
但是返回結(jié)果還要求有這條數(shù)據(jù)。
所以我只能使用sql中的case 方式將主鍵為空的值賦一個(gè)默認(rèn)值來(lái)解決。
最后問(wèn)題解決了,可以這種方式的確暴露了hibernate針對(duì)視圖的問(wèn)題,如果您也遇到了這種問(wèn)題,很期待您的解決方式。