Может ли кто-нибудь мне сказать, что я могу вернуть Hibernate Entities в качестве возвращаемого значения в методах веб-службы JAXWS!?
Действительно, у меня есть несколько сущностей, подобных этим:
@Entity
public class Parent {
...
private Childone childoneByChildoneid;
@ManyToOne
public
@javax.persistence.JoinColumn(name="ChildOneId",referencedColumnName="Id")
Childone getChildoneByChildoneid() {
return childoneByChildoneid;
}
public void setChildoneByChildoneid(Childone childoneByChildoneid) {
this.childoneByChildoneid = childoneByChildoneid;
}
...
}
@Entity
public class Childone {
...
private Collection<Parent> parentsById;
@OneToMany(mappedBy = "childoneByChildoneid")
public Collection<Parent> getParentsById() {
return parentsById;
}
public void setParentsById(Collection<Parent> parentsById) {
this.parentsById = parentsById;
}
...
}
Итакой сервис:
@Stateless
@WebService()
public class MasterDataService {
@EJB
private MasterDataManager manager;
@WebMethod
public Parent getParent(int parentId) {
return manager.getParent(parentId);
}
}
@Stateless
public class MasterDataManager {
@PersistenceContext
EntityManager em;
public Parent getParent(int parentId) {
Parent parent = (Parent) em.createQuery(
"select p from Parent p where p.id=:parentId")
.setParameter("parentId", parentId).getSingleResult();
return parent;
}
}
Когда я вызываю этот веб-метод из клиента, я получаю исключение LazyInitializationException: (
Я тестирую интерфейсы Serializable и Cloneable и переопределяю метод клонирования, но, к сожалению, этого не происходитЯ использую em.detach (parent) в менеджере, но он все еще не работает.
Может ли кто-нибудь мне помочь?
tnax