Скажем, я пытаюсь перечислить все продукты, используя приятный интерфейс.JAX-RS: Как выбрать выборочный вывод xml в режиме «Restful call»?
@XmlRootElement
public class Product implements Serializable {
//products attributes defined here
@OneToMany(cascade = CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="product")
private Set<ProductUser> productUsers= new HashSet<ProductUser>();
}
Когда я пытаюсь вызвать find.All на продукты, он пытается принести даже ProductUsers и бросать исключение
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role, productUsers, no session or session was closed
Я не хочу, чтобы включить пользователей продукта в моем покое XML вывод. Как выборочно выбирать, что входит в xml?
Я использую REST-Easy, JBoss AS7, JPA с Hibernate в качестве реализации. Мои методы EJB 3.1 отображаются как службы Restful.
Цените свою помощь!
Alex, Этот метод имеет смысл. Я попробую. Но если мой фронт хочет использовать сущности JPA (чтобы использовать валидаторы), я создам два отдельных метода для своих EJB для использования на передней панели, а другой для разоблачения как методы Restful. Есть ли другой элегантный способ выбора, какие коллекции JPA Entity становятся доступными в вызове службы? –
Alex, Если я отсоединил JpaProduct выше и позвонил product.setProductUsers (null), вы думаете, что есть какие-то недостатки, по сравнению с тем, что вы предложили (создание отдельного JaxbProduct)? –
@Veer Что вы имеете в виду, когда говорите «передний конец»? Можете ли вы набросать свой архитектурный стек. –