fantomas
Se entendi bem você precisa da classe Produto e não ItemVenda; logo sua linha ficaria assim: List itens;
flws
raf4ever
Não fui claro com relação ao problema,na verdade o problema é esse:
Eu tenho esse modelo de classes e preciso passar como XML ,estou usando JAX-RS:
public class Venda {
Integer id;
String nomeCliente;
List<ItemVenda> itens;
@XmlRootElement(name="item")
public class ItemVenda {
String produto;
Double valor;
O xml retornado é esse:
<venda>
<id>3613</id>
<itens>
<produto>CAMINHO DE MESA - LINHA FINA - 1.50X0.40 M - RENDA</produto>
<valor>157.5</valor></itens>
<nomeCliente>RAFAEL ROQUE</nomeCliente>
</venda>
Mas eu queria que fosse algo do tipo:
<venda>
<id>3613</id>
<itens>
<item>
<produto>CAMINHO DE MESA - LINHA FINA - 1.50X0.40 M - RENDA</produto>
<valor>157.5</valor>
</item>
</itens>
<nomeCliente>RAFAEL ROQUE</nomeCliente>
</venda>
fantomas
public class Teste {
private File file = new File("teste.xml");
private Teste() {
}
public Venda load() throws Exception {
Venda venda = null;
if (this.file.exists()) {
FileReader reader = new FileReader(this.file);
XStream xstream = new XStream();
venda = (Venda) xstream.fromXML(reader);
}
return venda;
}
public void save(Venda venda) throws Exception {
if (venda != null) {
FileWriter writer = new FileWriter(this.file);
XStream xstream = new XStream();
xstream.alias("item", Item.class);
xstream.toXML(venda, writer);
}
}
public static void main(String[] args) {
Teste teste = new Teste();
Venda venda = new Venda();
venda.setId(1);
venda.setNomeCliente("CLIENTE 1");
List<Item> itens = new ArrayList<Item>(0);
itens.add(new Item("ABACAXI", 2.25));
itens.add(new Item("BANANA", 1.50));
venda.setItens(itens);
try {
teste.save(venda);
} catch (Exception e) {
e.printStackTrace();
}
}
}
public class Venda {
Integer id;
String nomeCliente;
List<Item> itens;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getNomeCliente() {
return nomeCliente;
}
public void setNomeCliente(String nomeCliente) {
this.nomeCliente = nomeCliente;
}
public List<Item> getItens() {
return itens;
}
public void setItens(List<Item> itens) {
this.itens = itens;
}
}
public class Item {
String produto;
Double valor;
public Item() {
}
public Item(final String produto, final Double valor) {
this.produto = produto;
this.valor = valor;
}
public String getProduto() {
return produto;
}
public void setProduto(String produto) {
this.produto = produto;
}
public Double getValor() {
return valor;
}
public void setValor(Double valor) {
this.valor = valor;
}
}
Evidencia:
<Venda>
<id>1</id>
<nomeCliente>CLIENTE 1</nomeCliente>
<itens>
<item>
<produto>ABACAXI</produto>
<valor>2.25</valor>
</item>
<item>
<produto>BANANA</produto>
<valor>1.5</valor>
</item>
</itens>
</Venda>
Entendi que é isto que você precisa.
flws