Нет, хранение моделей в сессии не очень хорошая идея. Сеанс Wicket используется разными запросами с разными жизненными циклами и, следовательно, разными потоками. Разделение объектов таким способом вызовет все виды тонких проблем.
Вместо этого вы должны только совместно использовать идентификатор объекта и создавать новую модель для каждого запроса. Вы могли бы даже создать несколько моделей и полагаться на свой кеш сеанса и кеш второго уровня, чтобы справиться с любыми проблемами с производительностью.
В качестве альтернативы, вы можете хранить данные как метаданные RequestCycle. Если хотите, вы можете использовать мой RequestCycleCache .
public User getUser() {
return RequestCycleCache.getOrCreate(USER_KEY, _userId, FETCH_USER_FUNCTION);
}