json-lib hibernate遅延ロードの問題


json-lib hibernate遅延ロードの問題
------
質問:
json-libでhibernate遅延ロードのオブジェクトをjsonに変換するとsessionが閉じるエラーがパッケージされ、
------
解決:
json-libのJsonConfigで不要な属性をフィルタリングし、PropertyFilterのapply法でフィルタ判定することができ、
PropertyFilterのapply(Object source,String name,Object value)メソッド:
*パラメータ:
*ソース属性が属するオブジェクト
*name属性の名前
*value属性の値
*戻り値:
trueろ過
false保存
*
注意:
属性名nameパラメータを判断する場合は、proxy方式でFieldオブジェクトを取得してから判断し、直接nameで判断しないようにすると、遅延ロードエラーが発生し、
テクニック:
1つの属性を除外する場合は、ソースのタイプを判断してから、nameに対応するFieldオブジェクトを取得し、そのタイプを判断します.
------
例:
* Goods.JAvaでの「GoodsType type」属性の除外


      /**    goods   json config */
      public static JsonConfig jsonConfig = new JsonConfig();
      static {
            jsonConfig.setJsonPropertyFilter(new PropertyFilter() {
                  public boolean apply(Object source, String name, Object value) {
                        if (source.getClass() == Goods.class) { //      Goods    GoodsType
                              Field declaredField = null;
                              try {
                                    declaredField = source.getClass().getDeclaredField(name);
                              } catch (NoSuchFieldException e) {
                                    e.printStackTrace();
                              }
                              if (declaredField.getType() == GoodsType.class) {
                                    return true;
                              } else {
                                    return false;
                              }
                        } else {
                              return false;
                        }
                  }
            });
      }

------