系統採用struts-json hibernate3.
在對關聯表配置manytoone onetomany雙向關聯的時候,在執行一方的時候,會發現列印出來的SQL語句多執行了一次或者多次。經過除錯,發現是在struts-json進行序列化時把關聯的物件再次取了一次。
經過多次百度,google查詢,最終找到解決辦法,把不需要的過濾掉就可以了。
有人建議在實體欄位上使用@json(seriliaze=false)來解決,個人不建議這樣做,這樣做是永遠不再讓當前欄位序列化了,如果需要用到的時候就麻煩了。
我使用的方法是過濾掉不需要的屬性。這樣不影響其它地方的使用,最後不再使用struts-json外掛了,改使用fastjosn,fastjson提供多種過濾方式比較namefilter,propertyfilter,propertyprefilter等,我使用了第二種,然後使用fastjson重新進行序列化。完美解決了問題。