在用hibernate做查詢的時候有時候可能要用到一點小技巧
假設:company和businessarea是父子一對多的關系,也就是多個company對一個area
1.從頁面中傳來一個areaID和一個company,一個action所做的就是把這個company存在這個areaID里面,要怎么做?我想想呀,是不是先用areaDAO來根據這個IDload出一個area來,然后在用company.setArea()來搞定?這么作肯定就要讀兩次數據庫了,在性能上肯定是浪費;哪該怎么作哪?其實要做的不就是在company表里面存進去一組數據,并且外鍵為這個areaID,但是真是沒有什么好的辦法來做了。
但是在讀取的時候還是有好辦法的。另一個例子,傳來一個areaID,要讀出這個ID下面的所有company,就能用一句簡單的hsql來完成,而不用先讀出area在讀出list了,就用"from company as com where com.area.id="+id,呵呵,干凈漂亮的完成了
剛學透明持久的時候覺得sql真他媽的垃圾,現在看來還真是有他必須存在依據了