Ola amigos, o cenário é o seguinte, estou fazendo um crud com jax-rs usando o Grizzly2 e tenho um objeto mapeado com jax-b que possui um atributo de seu proprio tipo em uma relaçao product e product parent além de uma lista de outro atributo chamado imagem.
Agora vem o problema, sempre que eu tento adicionar o produto com um produto parent dentro acontece que o parent sempre é adicionado com os atributos vazios e o mesmo acontece com as imagens.
abaixo seguem meus objetos e tambem o metodo de inserçao:
Objeto produto
@Entity
@XmlRootElement(name="product")
@XmlAccessorType(XmlAccessType.FIELD)
public class Product {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private Double price;
@XmlElement(name="product", type=Product.class)
@ManyToOne(cascade = { CascadeType.PERSIST, CascadeType.MERGE })
private Product parent;
@XmlElement(name="image", type=Image.class)
@OneToMany(fetch = FetchType.EAGER, mappedBy="product", cascade = CascadeType.ALL)
private List<Image> images = new ArrayList<Image>();
public Product() {
this.name = "";
this.price = 0.0;
}
public Double getPrice() {
return price;
}
public void setDouble(Double price) {
this.price = price;
}
public Product getParent() {
return parent;
}
public void setParent(Product parent) {
this.parent = parent;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public List<Image> getImages(){
return images;
}
public void setImages(List<Image> images){
this.images = images;
}
}
Metodo de adicionar
@Path("add")
@POST
@Consumes(MediaType.APPLICATION_XML)
public Response addProduct(String productString){
try {
Product product = (Product) new XStream().fromXML(productString);
product = new ProductDAO().addProduct(product);
URI uri = URI.create("/carrinhos/" + product.getId());
return Response.created(uri).build();
} catch (Exception e) {
e.printStackTrace();
return Response.serverError().build();
}
}
Desde ja muito obrigada :)