Я изучаю обработку JSON из JavaEE 7, и у меня есть вопрос, описанный ниже.Создание бизнес-объекта с использованием обработки JSON из JavaEE 7
(прежде чем спрашивать я прочитал ниже информацию, но до сих пор вопрос)
http://docs.oracle.com/javaee/7/tutorial/jsonp004.htm
How can I cast a JSONObject to a custom Java class?
How do I convert a JSONObject to class object?
1) У меня есть веб-службы REST, который возвращает ответ в JSON:
{"id":1141,"email":"[email protected]","enabled":"Y"}
2) Существует соответствующая JPA Entity называется User
@Table(name = "USER")
@Entity
public class User {
@Id
@Column(name = "USER_ID")
private Long id;
@Column(name = "EMAIL")
private String email;
@Column(name = "ENABLED")
private String enabled;
3) У меня есть клиент на основе Джерси Client API и Java EE JSON обработки, которые называют этот веб-сервис.
Maven зависимостей:
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet-core</artifactId>
<version>2.22.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.json</artifactId>
<version>1.0.4</version>
</dependency>
код клиента:
Client client = ClientBuilder.newClient();
WebTarget target = client.target("http://localhost:7001/projectname/rest");
WebTarget resourceWebTarget = target.path("users").queryParam("email", "[email protected]");
Invocation.Builder invocationBuilder = resourceWebTarget.request(MediaType.APPLICATION_JSON);
Response response = invocationBuilder.get();
JsonReader reader = Json.createReader(response.readEntity(InputStream.class));
JsonObject jObject = reader.readObject();
User user = new User();
user.setId(jObject.getJsonNumber("id").longValue());
user.setEmail(jObject.getString("email"));
user.setEnabled(jObject.getString("enabled"));
И, наконец, вопрос:
Должен ли я иметь создать пользователя как User = new User();
и задать все свойства вручную или существует более удобный способ создания пользователя?
Внешняя Id против "местного" Id (первичный ключ), кажется заблуждением ... –