Сглаживание @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; }
}

0 ответов

Другие вопросы по тегам