關(guān)于hibernate我想大家都不會(huì)陌生纳寂,是一個(gè)很老的用戶比較多的對(duì)象關(guān)系映射的框架衫哥,那么大家一定知道士袄,對(duì)應(yīng)每一個(gè)實(shí)體類都會(huì)有一個(gè)配置文件悲关。
而前兩天我遇到的問(wèn)題,就和配置文件有關(guān)娄柳。
準(zhǔn)確的說(shuō)是跟這個(gè)配置文件中配置主鍵有關(guān)坚洽。
真的很坑,很坑拔魍痢讶舰!
hibernate的實(shí)體類配置文件中一定要有相應(yīng)實(shí)體類對(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)題,很期待您的解決方式吮廉。