1. 程式人生 > >解決多表關聯轉換json記憶體溢位

解決多表關聯轉換json記憶體溢位

使用Hibernate時候對錶關聯,在把資料轉換成Json時,由於兩個欄位相互包含,輸出會引發記憶體溢位,下面的方法可以幫助你過濾掉其中一個欄位,就不會記憶體溢位了

Gson gson=new GsonBuilder().setExclusionStrategies(new ExclusionStrategy() {  

@Override  
public boolean shouldSkipField(FieldAttributes f) {  
           //過濾掉欄位名包含"products"的欄位  
           return f.getName().contains("orderitems")||f.getName().contains("category");//過濾掉兩個  
       }  
       @Override  
       public boolean shouldSkipClass(Class<?> clazz) {  
           //過濾掉 類名包含 Bean的類  
           return clazz.getName().contains("Product");  //兩個方法,只用重寫其中一個就好了
       }  
   }).create();  
result = gson.toJson(list);

jedis.set("category", result);

以下方法也可以解決:

2 在fastjson中還可以使用@JSONField註解來實現屬性忽略策略[l1] ;

 但是這兩種辦法,查詢出來了多餘欄位,

3可以優化hql語句來解決

4取消其中一方的關聯來解決