gpt4 book ai didi

web-services - Grails CXF插件Web服务

转载 作者:行者123 更新时间:2023-12-02 14:55:50 24 4
gpt4 key购买 nike

我想知道在接收到作为Web服务请求的现有实体(例如,人)上更新请求的最佳方法是什么。

在我的项目中,我有一个Person域类,我想通过CXF插件将CRUD操作公开为Web服务操作。所以我制作了一个PersonService,并公开了方法

static expose = ['cxfjax']

然后我有更新方法:
@WebResult(name = "person")
@WebMethod(operationName = "update")
Person update(@WebParam(name="person")Person person) {
println "Updating $person"
return person.save()
}

在服务中,我得到了一个很好的Person对象,但是即使它具有一个现有人员的ID,也会创建一个新人员,并更改该ID以反射(reflect)这一点。

所以...我如何让我收到的人“合并”到Hibernate session 中,以便Grails将其识别为现有人?

亲切的问候,

基督教

最佳答案

也许...

@WebResult(name = "person")
@WebMethod(operationName = "update")
Person update(@WebParam(name="person")Person person) {

println "Updating $person"
def p = Person.get(person.id)
if ( p ) {
// what ever your merge logic is...
} else {
return person.save()
}
}

关于web-services - Grails CXF插件Web服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3679454/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com