<lista>
<produto codigo="1">
<codigoProduto>1004</codigoProduto>
<descricao>PAVESINO 800X15</descricao>
<valor>2.30</valor>
<historicos>
<historico codigo="1">
<mesesHistoricos>2009-12-21 15:43:59.512 UTC</mesesHistoricos>
<quantidade>6735</quantidade>
</historico>
<historico codigo="2">
<mesesHistoricos>2010-01-21 15:43:59.514 UTC</mesesHistoricos>
<quantidade>5940</quantidade>
</historico>
<historico codigo="3">
<mesesHistoricos>2010-02-21 16:43:59.514 UTC</mesesHistoricos>
<quantidade>4824</quantidade>
</historico>
<historico codigo="4">
<mesesHistoricos>2010-03-21 16:43:59.514 UTC</mesesHistoricos>
<quantidade>7869</quantidade>
</historico>
<historico codigo="5">
<mesesHistoricos>2010-03-21 16:43:59.514 UTC</mesesHistoricos>
<quantidade>8152</quantidade>
</historico>
</historicos>
ao ler e salvar no banco recebo o erro que o id_produto estar null. para não ocorrer isso coloquei o cascade. estou fazendo de forma manual
EStou tentando salvar no banco com o seguinte codigo:
public static void main(String[] args) throws FileNotFoundException {
EntityManagerFactory factory =
Persistence.createEntityManagerFactory("PrevisaoVendasPU");
EntityManager manager = factory.createEntityManager();
EntityTransaction trx = manager.getTransaction();
trx.begin();
// =================== LER ================================
XStream ler = new XStream(new DomDriver());
ler.alias("lista", List.class);
ler.alias("historico", Historico.class);
ler.aliasAttribute(Historico.class, "codigo", "codigo");
ler.alias("produto", Produto.class);
ler.aliasAttribute(Produto.class, "codigo", "codigo");
List<Produto> listaProduto = (List<Produto>) ler.fromXML(new FileInputStream("./produto2.xml"));
for (Produto p : listaProduto) {
System.out.println(p.getCodigo());
System.out.println(p.getCodigoProduto()== null ? "Erro": p.getCodigoProduto());
System.out.println(p.getDescricao());
for (Historico h : p.getHistoricos()) {
System.out.println(h.getCodigo());
System.out.println(h.getMesesHistoricos());
System.out.println(h.getQuantidade());
p.getHistoricos().add(h);
manager.persist(p);
}
}
trx.commit();
}