В ссылке на hibernate сказано, что merge ()
• если в данный момент нет постоянного экземпляра, связанного с сеанс, попробуйте загрузить его из базы данных или создать новый постоянный Экземпляр • постоянный экземпляр возвращается • данный экземпляр не становится связанным с сеансом, он остается отделенным
• если в данный момент нет постоянного экземпляра, связанного с сеанс, попробуйте загрузить его из базы данных или создать новый постоянный Экземпляр
• постоянный экземпляр возвращается
• данный экземпляр не становится связанным с сеансом, он остается отделенным
что означает последняя строка, что возвращаемый объект отсоединен? merge () используется для повторного связывания объекта detach с сеансом, так почему же он возвращает отделенный объект?
В документации написано "данный экземпляр". Это значит:
A a, b; ... a = session.merge( b );
На этом этапе a связан с сеансом, но b остается отсоединенным.
a
b