Я пытаюсь вызвать метод get нижеуказанного веб-сервиса
@Stateless
@Path("com.company.entitiesms.bom")
public class BomFacadeREST extends AbstractFacade<Bom> {
@PersistenceContext(unitName = "com.mycompany_rxws_war_1.0-SNAPSHOTPU")
private EntityManager em;
public BomFacadeREST() {
super(Bom.class);
}
@GET
@Path("{id}")
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public Bom find(@PathParam("id") Long id) {
return super.find(id);
}
, где он должен получить все элементы xml и дочерние элементы в спецификации класса сущности:
@Entity
@Table(catalog = "MOI", schema = "dbo")
@XmlRootElement
public class Bom implements Serializable {
@Id
@Basic(optional = false)
@NotNull
@Column(name = "BOM_ID", nullable = false)
private Long bomId;
@OneToMany(mappedBy = "bomId")
private Collection<BOMDevices> bOMDevicesCollection;
@OneToMany(mappedBy = "bomId")
private Collection<TRInstallations> tRInstallationsCollection;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "bomId")
private Collection<BOMATEs> bOMATEsCollection;
public Bom() {
}
public Bom(Long bomId) {
this.bomId = bomId;
}
public Long getBomId() {
return bomId;
}
public void setBomId(Long bomId) {
this.bomId = bomId;
}
//@XmlTransient
public Collection<BOMATEs> getBOMATEsCollection() {
return bOMATEsCollection;
}
public void setBOMATEsCollection(Collection<BOMATEs> bOMATEsCollection) {
this.bOMATEsCollection = bOMATEsCollection;
}
@XmlTransient
public Collection<BOMDevices> getBOMDevicesCollection() {
return bOMDevicesCollection;
}
public void setBOMDevicesCollection(Collection<BOMDevices>
bOMDevicesCollection) {
this.bOMDevicesCollection = bOMDevicesCollection;
}
проблема в том, что коллекция BOMATE не генерируется в xml-выводе метода get в вышеупомянутом веб-сервисе, и его класс выглядит следующим образом:
@Entity
@Table(name = "BOM_ATEs", catalog = "MOI", schema = "dbo")
@XmlRootElement
public class BOMATEs implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Basic(optional = false)
@NotNull
@Column(name = "ATE_ID", nullable = false)
private Long ateId;
public BOMATEs() {
}
public BOMATEs(Long ateId) {
this.ateId = ateId;
}
public Long getAteId() {
return ateId;
}
public void setAteId(Long ateId) {
this.ateId = ateId;
}
@XmlTransient
public Collection<BOMDevices> getBOMDevicesCollection() {
return bOMDevicesCollection;
}
public void setBOMDevicesCollection(Collection<BOMDevices>
bOMDevicesCollection) {
this.bOMDevicesCollection = bOMDevicesCollection;
}
public Bom getBomId() {
return bomId;
}
public void setBomId(Bom bomId) {
this.bomId = bomId;
}
}
я попытался удалить аннотацию XmlTransient для getter getBOMATEsCollection,изменение типа выборки на нетерпеливое без надежды