0

前もってお詫び申し上げます。Wicket についての理解が不足していることは認めます。LoadableDetachableModel を使用するとオブジェクトがシリアル化されなくなることを読みましたが、テストを数回実行した後でもシリアル化されていることがわかりました (セッション タイムアウト後、またはタイムアウト後のページ読み込み時など)。モデルを正しく使用していない可能性があると思います。どんな助けや指示も大歓迎です。

コードは次のようになります。

    ...
    LoadableDetachableModel ldm = new LoadableDetachableModel<SomeSettings>() {
        @Override
        public SomeSettings load() {
            if (someSettingsDao == null) someSettingsDao = new SomeSettingsDao(); 

            return someSettingsDao.Retrieve("1") == null ? new SomeSettings()
                  : (SomeSettings) someSettingsDao.Retrieve("1");
        }
    };

    final Form<SomeSettings> form = new Form<SomeSettings>("someSettings", new CompoundPropertyModel<SomeSettings>(ldm)) {

        private static final long serialVersionUID = 1L;

        @Override
        protected void onSubmit() {
            if (someSettingsDao == null) someSettingsDao = new SomeSettingsDao();

            if (someSettingsDao.Retrieve("1") != null)
                someSettingsDao.Update(getModelObject());
            else
                someSettingsDao.Insert(getModelObject());

        setResponsePage(UserPanel.someSettingsPageProvider.getPageClass());
        }

    };
    ...

それは私のモデルの使用ですか?または、データはどのように永続化されますか? ありがとう。

4

1 に答える 1