Когда это происходит, обычно это означает, что вы закрыли сеанс, который использовался для загрузки объекта, и попытались обновить объект, используя другой сеанс.Это происходит в некоторых средах, где по какой-то причине вам нужно сериализовать объекты между загрузкой и фактическим обновлением.
Самое простое решение: не отсоединяйте и не используйте объекты в разных сеансах, это простопринести вам головную больИ я говорю не только о Hibernate Search.
Если вы действительно хотите это сделать, возможно , но не так очевидно, как может показаться на первый взгляд.
Есть способы избежать использования отдельных сущностей в Wicket, по крайней мере.Для других фреймворков, не зная больше о вашей фреймворке, я не могу помочь.Я сомневаюсь, что смогу помочь, если это пользовательский интерфейс, которого я не знаю, но это стоит попробовать;)
Если вы решите предоставить больше информации, пожалуйста, по крайней мере, упомяните: версии Hibernate ORM и Hibernate Search, которые вывы используете, и точный код, который вы используете при взаимодействии с Session / EntityManager (.persist()
, .merge()
, .saveOrUpdate()
, ...), и код пользовательского интерфейса, связанный с хранением / переносом объекта между компонентами.