В настоящее время у меня есть класс, использующий 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.