Сглаживание @Embedded Classes
Я пытаюсь создать сущность, которая сопоставляется с таблицей, которую я не могу контролировать. Таблица имеет один уникальный индекс, который я использовал для обработки @EmbeddedId.
Так что-то вроде этого:
@Embeddable
@XmlRootElement
public class FooK implements Serializable {
@Column(name="fu")
private String fu;
@Column(name="bar")
private String bar;
}
@Entity Foo
@Table(name="THIRD_PARTY_RESOURCE")
@XmlRootElement
public class Foo implements Serializable {
@EmbeddedId
private FooK id;
@Column(name="DATA")
private String data;
}
Когда сериализовано в JSON, получается что-то вроде этого:
{"id":{"fu":"1","bar":"2"},"data":"3"}
Я хотел бы "сплющить" его и сделать так, чтобы он выглядел так:
{"fu":"1","bar":"2","data":"3"}
Я могу придумать несколько способов обойти это - однако в целом они кажутся очень затянутыми и могут создать что-то, что (на мой взгляд) должно быть очень простым. Я, вероятно, упускаю что-то очень очевидное, но если есть ошибка, которую я делаю, или аннотация, которую я мог бы использовать, чтобы реализовать это, не углубляясь в ObjectMapper
или оберточные дороги POJO, я бы высоко оценил просветление.
Под POJO я имею в виду что-то вроде этого:
@XmlRootElement
class Pojo implements Serializable {
private Foo foo;
Pojo(Foo foo) { this.foo = foo }
String getFu() { return foo.id.fu; }
String getBar() { return foo.id.bar; }
String getData() { return foo.data; }
}