В веб-сервисе Java Rest отсутствует дочерний объект - PullRequest
0 голосов
/ 13 мая 2018

Я пытаюсь вызвать метод 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,изменение типа выборки на нетерпеливое без надежды

...