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