Мне было интересно, как лучше всего обрабатывать запрос на обновление существующего объекта (например, Person) при получении запроса в виде запроса веб-службы.Плагин Grails CXF Webservice
В моем проекте у меня есть класс домена Person, и я бы хотел разоблачить операции CRUD как операцию webservice через плагин CXF. Так что я сделать PersonService и разоблачить методы с
static expose = ['cxfjax']
Тогда у меня есть метод обновления:
@WebResult(name = "person")
@WebMethod(operationName = "update")
Person update(@WebParam(name="person")Person person) {
println "Updating $person"
return person.save()
}
В службе я получаю прекрасный объект Person, но даже если он имеет идентификатор существующий человек, создается новый человек, и идентификатор изменяется, чтобы отразить это.
SO ... как мне получить человека, которого я получаю «слитым» в сеанс Hibernate, чтобы Grails узнал его как существующего человека?
С наилучшими пожеланиями,
христианские
Я надеялся, что каким-то образом вы можете повторно подключить входящего человека к сеансу Hibernate на основе идентификатора. Прямо сейчас, я действительно делаю, как вы предлагаете: Person p = new Person(); p.properties = incomingPerson.properties; p.save(); –
так это сработало? –