我正在使用Rest-services和JPA编写的java启动HTML5-client-server应用程序。我有一个问题如何实现服务器端。想象一下你有对象的情况
public class User {
private String firstName = "";
private String surName = "";
private Address address = "";
}
public class Address {
private long id = 0L;
private String sAddress ="";
}
这是在创建/删除/更新db时使用休息服务和控制器的最终实体。
现在我尝试从ui(使用jquery和ajax)向DB插入一个新用户,我已经填充了JSON-object。但是User-object中有Address-object。有没有办法实现/使用或者我应该创建新的pojos只有基本类型,然后是一个新的层,我填充最终的JPA实体,如User with Address-object?我希望我的英语足以解释这个问题。
您可以使用Netbeans 7.3轻松创建此类问题/应用。首先用两个表创建一个DB,创建一个项目并从DB生成Web服务,就是这样。现在你有了实体,带有facade,db和项目的web服务。
我之前用示例代码询问了这个但没有答案: https://stackoverflow.com/questions/14936031/mapping-and-parsing-json-objects-in-ui-and-in-java
并像这样:错误:
WARNING: StandardWrapperValve[ServletAdaptor]: PWC1406: Servlet.service() for servlet ServletAdaptor threw exception
org.codehaus.jackson.map.JsonMappingException: Can not instantiate value of type [simple type, class entity.Address] from JSON String; no single-String constructor/factory method (through reference chain: entity.User["addressAddressId"])
at org.codehaus.jackson.map.deser.std.StdValueInstantiator._createFromStringFallbacks(StdValueInstantiator.java:379)
at org.codehaus.jackson.map.deser.std.StdValueInstantiator.createFromString(StdValueInstantiator.java:268)
答案 0 :(得分:0)
您是否在询问如何创建User
JPA对象(对应于USER
表),其中包含Address
对象(对应于ADDRESS
表)?< / p>
如果是这样,这里有一些答案:
@OneToOne
注释,至少从User
到Address
,以及可能的另一个方向。上面链接的页面甚至使用具有地址的员工示例。 :)希望有所帮助!
答案 1 :(得分:0)
这是一个好主意,创建一个应用程序,其中数据(JPA实体)与Web服务层和客户端层中的对象完全相似吗?
在RESTful WebServices中,您可以在资源上调用HTTP方法。通常,HTTP-GET
获取由URI定义的资源。因此,必须处理该请求,检索数据并以响应的形式放回。如果请求是纯数据检索,则服务器和客户端上的数据应该类似。
知道如何实现吗?
您可以在此处使用DAO对象,访问您的持久层。
甚至可以在休息服务中使用自己的对象类型 - HTML5(JSON)组合甚至一般吗?
REST几乎与HTML无关,它是服务工作方式的范例。 HTML是一种可用于与客户端(如浏览器)进行交互的语言。
答案 2 :(得分:0)
根据您获得的异常,您所遗漏的只是Address对象的正确构造函数。你需要Address(String x)构造函数。