gpt4 book ai didi

java - 在 PlayFramework with Morphia 中,如何更新对象?

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

Play 1.2.4吗啡1.2.6a

我已经尝试用几种不同的方式更新记录已经太多天了。我读过几本书,审阅了 Play 上的几乎所有评论,但我仍然无法弄清楚这一点。???

型号:

@Entity
public class MyModel extends Model{
public String fullname;
public String email;
}

路线:

PUT /test1/? Application.Update1(format:'json')
PUT /test2/? Application.Update2(format:'json')
PUT /test3/? Application.Update2(format:'json')

Controller :

public static void Update1(MyModel mydata){
}

public static void Update2(JsonObject json){
}

public static void Update3(@Valid MyModel mydata){
}

发送:

PUT
Content-Type: application/json
Accept: application/json
{ "id": "4fa932fa036494e78debbc14",
"fullname" : "test"
}

调用Update1、Update2、Update3,均报异常并退出。

调用更新1:

Oops: RuntimeException
An unexpected error occured caused by exception RuntimeException: play.exceptions.UnexpectedException: Unexpected Error

play.exceptions.UnexpectedException: Unexpected Error
at play.mvc.ActionInvoker.invoke(ActionInvoker.java:258)
at Invocation.HTTP Request(Play!)
Caused by: java.lang.RuntimeException: play.exceptions.UnexpectedException: Unexpected Error
at play.modules.morphia.Model.create(Model.java:73)

调用更新2:

NullPointerException occured : null

play.exceptions.JavaExecutionException
at play.mvc.ActionInvoker.invoke(ActionInvoker.java:231)
at Invocation.HTTP Request(Play!)
Caused by: java.lang.NullPointerException
at controllers.ApplicationController.Update2(ApplicationController.java:49)
at play.mvc.ActionInvoker.invokeWithContinuation(ActionInvoker.java:548)
at play.mvc.ActionInvoker.invoke(ActionInvoker.java:502)
at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:478)
at play.mvc.ActionInvoker.invokeControllerMethod(ActionInvoker.java:473)
at play.mvc.ActionInvoker.invoke(ActionInvoker.java:161)

更新3:

Oops: RuntimeException
An unexpected error occured caused by exception RuntimeException: play.exceptions.UnexpectedException: Unexpected Error

play.exceptions.UnexpectedException: Unexpected Error
at play.data.validation.ValidationPlugin.beforeActionInvocation(ValidationPlugin.java:59)
at play.plugins.PluginCollection.beforeActionInvocation(PluginCollection.java:594)
at play.mvc.ActionInvoker.invoke(ActionInvoker.java:134)
at Invocation.HTTP Request(Play!)
Caused by: java.lang.RuntimeException: play.exceptions.UnexpectedException: Unexpected Error
at play.modules.morphia.Model.create(Model.java:73)
at play.modules.morphia.MorphiaPlugin.bind(MorphiaPlugin.java:601)
at play.PlayPlugin.bind(PlayPlugin.java:68)
at play.plugins.PluginCollection.bind(PluginCollec

帮忙?

最佳答案

我认为这更多的是关于 JSON 绑定(bind)而不是吗啡问题。 AFAIK,play 1.x 不支持 JSON 自动绑定(bind)。所以您可能需要的是:

public static void Update(String myData){
MyModel model = new Gson().fromJSON(myData, MyModel.class);
...
}

在客户端,您必须发送名为“myData”的 ajax 消息:

$.post("the/url", {myData: {...}}, function(response){...});

关于java - 在 PlayFramework with Morphia 中,如何更新对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10603217/

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