#java #embeddable #javax.persistence
Вопрос:
Я пытаюсь использовать аннотации @Embedded и @Embeddable javax, чтобы мои классы Java были чище, но я хочу, чтобы полученный JSON был сглажен.
ЖЕЛАЕМОЕ ПОВЕДЕНИЕ:
[
{
"id": "6edbced5-2d27-4257-a140-2925291daaf6",
"name": "Online Maria DB",
"address": "Syble Forks",
"city": "Dallas",
"state": "Texas",
"country": "United States"
"phoneNumber": "(789) 740-5789",
"orgUserName": "online-maria"
}
]
ФАКТИЧЕСКОЕ ПОВЕДЕНИЕ:
[
{
"id": "6edbced5-2d27-4257-a140-2925291daaf6",
"name": "Online Maria DB",
"addressDetails": {
"address": "Syble Forks",
"city": "Dallas",
"state": "Texas",
"country": "United States"
},
"phoneNumber": "(789) 740-5789",
"orgUserName": "online-maria"
}
]
Возможно ли это с помощью этих аннотаций?
Что у меня есть до сих пор:
Organization.java
@Embedded
private Address address;
Address.java
@Embeddable
public class Address {
...
}
Комментарии:
1. Пожалуйста, поделитесь тем, что вы уже сделали.
2. Внес правку и добавил ее в мой вопрос.
3. Я предполагаю, что вы используете
Jackson
для сериализации этих объектов, верно?
Ответ №1:
Вы можете использовать @JsonUnwrapped
аннотацию Джексона, если используете Jackson
. Также вы можете написать пользовательский сериализатор
public class Organization {
@JsonUnwrapped
@Embedded
private Address address;
// other code
}