Маршалл сущность без каких-либо отношений - PullRequest
0 голосов
/ 24 августа 2018

В настоящее время у меня есть класс, использующий JPA для подключения к базе данных, который может выглядеть следующим образом.

public class Person {
    private String name;
    private int age;

    @OneToMany
    private List<Pet> pets;

    @OneToOne
    private House house;
}

, и я использую javax.ws.rs аннотации для создания таких веб-сервисов xml, как этот

@GET
@Path("/load")
@Produces("application/xml")
public Response loadByPetId(@QueryParam("petId") int petId) {
    return Response.ok(personBean.loadByPetId(petId)).build();
}

(я использую eclipselink)

@Stateless
public class PersonBean {
    @PersistenceContext(unitName = "...")
    private EntityManager em;

    @Override
    protected EntityManager getEntityManager() {
        return em;
    }

    public PersonBean() {
        super(Person.class);
    }

    public List<Person> loadByPetId(int petId) {
        return em.createNamedQuery("Person.findByPetId", Person.class).setParameter("petId", petId).getSingleResult();
    }
}

, который возвращает XML, содержащий каждый атрибут и отношения из заданного Person, такого как

<Person>
    <name>toto</name>
    <age>18</age>
    <Pets>
        <Pet>
            ...
        </Pet>
        <Pet>
            ...
        </Pet>
        ...
    </Pets>
    <House>
        ...
    </House>
</Person>

Я хочу иметь возможность создать другой веб-сервис, который загружает только атрибуты данного Person без связей , такие как

<Person>
    <name>toto</name>
    <age>18</age>
</Person>

Но, как я использую Pets для загрузки правильного Person, список Pets загружен, и я не знаю, как «разгрузить его» * ​​1027 *, чтобы он не был в моем xml.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...