iai pessual, estou em um ponto do projeto aki surgiu a necessidade de eu fazer uma coisa que não sei como fazer em web…, na verdade acho q o problema será com o hibernate. vou explicar…
Tenho uma tabela de Compra…e uma tabela de ItemCompra, onde existe um relacionamento One-To-Many entre Compra e ItemCompra, ou seja, para uma compra posso ter vários Itens de compra.Ai na minha aplicação penso em ter um método na minha classe logic que preenche um ArrayList, com os supostos ItensCompra a serem inseridos na compra. Ainda não fiz isso, mas creio que fazer um método que adiciona itens da minha jsp para um arraylist nao seja complicado, porem eu não sei como irei gravar esse list junto com o meu objeto Compra…se eu não estive usando hibernate poderia fazer algo como:
Compra compra = new Compra();
ItensCompra itens = new ItensCompra();
compra.setItensCompra(itens);
dessa forma incluiria a listagem ao objeto compra…
minha duvida é como add essa lista ao objeto compra e como gravar nas tabelas??
meu método de adicionar uma compra por hora esta assim:
public void armazenaCompra(Compra compra){
this.daoFactory.beginTransaction();
this.daoFactory.getCompraDao().atualiza(compra);
this.daoFactory.commit();
}
alguem ai poderia me dar uma ajuda??
vlw
É só vc anotar suas classes, uma referenciando a outra:[code]@Entity
public class ItensCompra {
@ManyToOne
private Compra compra;
}
@Entity
public class Compra {
@OneToMany(mappedBy = "compra")
private List<ItensCompra> itensCompra;
}[/code]Quando vc persistir a Compra, os itens referenciados tb serão persistidos.
Blz? Flw! :thumbup:
Cara ja esta assim:
[code]@Entity
public class Compra {
@Id
@GeneratedValue
@Column(name="id_compra")
private Long id;
@OneToMany(mappedBy="compra", fetch=FetchType.LAZY)
@Cascade(CascadeType.ALL)
private Collection<ItemCompra> itemCompras;
//getters and setters
}
[/code]
[code]@Entity
public class ItemCompra {
@Id
@GeneratedValue
private Long id;
private Double frete;
private Double mat_subst;
private Integer quantidade;
private Double valor_venda;
@OneToOne
@JoinColumn(name="id_produto")
private Produto produto;
@ManyToOne(fetch=FetchType.EAGER)
@JoinColumn(name="id_compra",
insertable=true,
updatable=true)
@Fetch(FetchMode.JOIN)
@Cascade(CascadeType.SAVE_UPDATE)
private Compra compra;
//getters and setters
[/code]
mas quando eu for gravar no banco, como q o meu metodo adicionaCompra, acha a lista de itens??..eu não passo em lugar nenhum?..o hibernate acha sozinho??
vlw
Desde que vc tenha setado os itens na compra, sim, ele acha sozinho.
Blz? Flw! :thumbup:
o problema é esse, não sei como posso adicionar a lista de itens a compra…
meu jsp esta assim:
[code]
Cod. Compras : |
Cod.: |
Fornecedor: |
Pedido: |
Nota Fiscal: |
|
|
|
|
|
|
|
Data Emissão: |
Data Previsão: |
Data Entrega: |
Responsável: |
Forma Parcelamento : |
Tipo Pagamento : |
|
|
|
|
-- Selecione --
${formaPagamento.descricao}
|
-- Selecione --
${tipoPagamento.descricao}
|
Cod: |
Transportadora: |
Peso Liquido Total: |
Peso Bruto Total: |
Frete: |
Seguro: |
Despesas |
|
|
|
|
|
|
|
|
Frete por conta do: |
Emitente |
Destinatário |
Incluir Frete no total |
Manter Custo
|
<%-- Implementação da segunda aba --%>
Produto: |
Valor: |
Un.: |
ICMS: 0% |
ICMS: D% |
IPI: % |
|
<td>
<input id="idProdCusto" name="itemCompra.produto.custo_medio" type="text"
size="10" />
</td>
<td><input id="idProdUnidade" name="itemCompra.produto.UnMedida" type="text"
size="8"></td>
<td><input id="idProdIcms_1" name="itemCompra.produto.icms" type="text"
size="9"></td>
<td><input id="idProdIcms_2" name="itemCompra.produto.icms" type="text"
size="9"></td>
<td><input id="idProdIpi" name="itemCompra.produto.ipi" type="text" size="9"></td>
</tr>
<tr bgcolor="#666666" class="style9">
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
Quantidade: |
Subtotal: |
Frete: % |
Mat. com Subt.
Trib.: |
|
|
|
|
|
|
|
|
|
|
|
<display:table id=“itemCompra” name="${itens}" pagesize=“5”
style=“margin: 20px 0 20px 0; font-family:Verdana, Geneva, Arial, Helvetica, sans-serif; border: 1px solid #666;
font-size: 11px;width:70%” export=“true”>
<display:column title=“Id” style=“width:5%”>
${itemCompra.produto.id}
</display:column>
<display:column title=“Descrição”>
${itemCompra.produto.descricao}
</display:column>
<display:column property=“quantidade” title=“Quatidade”/>
<display:column property=“produto.unMedida” title=“UN”/>
<display:column property=“produto.icms” title=“ICMS”/>
<display:column property=“frete” title=“Frete”/>
<display:column property=“produto.ipi” title=“IPI”/>
<display:column property=“valor_venda” title=“Valor”/>
<display:column title=“Remover” style=“width:15%”>
</display:column>
<display:setProperty name=“export.pdf” value=“true” />
<display:setProperty name=“export.csv” value=“false” />
<display:setProperty name=“export.xml” value=“false” />
</display:table>
[/code]
existe mais coisas nele, mas eu tirei…
ai não sei como adicionar essa lista de itens na compra
se vc puder me ajudar…
vlw