請一定注意role_id是user表的字段。我在本例中設(shè)定的是一個(gè)角色可以對(duì)應(yīng)多個(gè)人員,所以這個(gè)role_id存的就是role表id的值。fetch = FetchType.LAZY指定采用延遲檢索,如果當(dāng)你取得了User對(duì)象,但又不想取Role中的信息,這時(shí),User對(duì)象中的role屬性是代理狀態(tài)。Role對(duì)象中的值都是空的。只有當(dāng)你使用role.id或role.name進(jìn)行取值的時(shí)候,hibernate才會(huì)去數(shù)據(jù)庫中查找對(duì)應(yīng)的記錄,因此在一定程度上降低了資源消耗。不過這里有點(diǎn)要注意,采用延遲檢索的時(shí)候,需要加上前一篇講到的OpenSessionInViewFilter過濾器。否則會(huì)遇到session關(guān)閉的異常。 service