Hibernate Pedidos +ItensPedido

7 respostas
fabianofrizzo

Bom dia galera

Não sei se aqui é o melhor lugar para este post mas…

To com uma duvida…

Tenho o Seguinte

Pedido e ItensPedido no seguinte relacionamento.
1:N

Usando o Hibernate como posso fazer para que ao mandar salvar o Pedido ele ja salve os Itens desse pedido…

Obrigado pela atenção de todos

7 Respostas

LeoMarola

http://www.java2s.com/Code/Java/Hibernate/Relation-One-to-Many.htm

Que tal?

Faça pesquisas no Fórum, Google e Na documentação do Hibernate mesmo, encontrará exemplos funcionais!

:wink:

lucasap2005

Tente isso
:lol:

fabianofrizzo

Eu procurei no Forum mas não sabia sobre o que procurar exatamente… :smiley:

Mas vou tentar seguir as dicas dos colegas e volto a postar aqui…

A eu esqueci de falar eu to usando Hibernate Annotations

Obrigado pela atenção de vc’s

lucasap2005

Fabiano, tente olhar na documentação de Anotation do Hibernate.
Deve ser algo do tipo: @cascade na tua lista de itens la no pedido…
De uma olhada qualquer coisa retorne

fabianofrizzo

Vou colocar aqui como estou fazendo parece estar tudo certo... Parece né pois se estivese taria funcionando hauahu..

Muito obrigado pela ajuda e atenção de todos.

Classe Pedido

package beans;

// imports

@Entity
@Table(name="tbPedido", schema="public")
public class Pedido implements Serializable {

	@Id
	@SequenceGenerator(name="seqPed", sequenceName="seqPed", initialValue=1)
	@GeneratedValue(generator="seqPed", strategy=GenerationType.AUTO)
	private Integer pedCod;
	
	@ManyToOne
	@JoinColumn(name="cliCod", referencedColumnName="cliCod")
	private Cliente cliente;
	
	@Temporal(value=TemporalType.DATE)
	private Date pedData;
	
	@Temporal(value=TemporalType.DATE)	
	private Date pedDataEntrega;
	
	private BigDecimal pedTotal;
	
	private boolean pedGerado;
	
	@OneToMany(mappedBy="pedido", cascade=CascadeType.ALL, fetch=FetchType.LAZY)
	private List<ItemPedido> itensPedido;
	
	public Pedido() {
		// TODO Auto-generated constructor stub
	}
  
        //Getter's e Setter's

}

Classe ItemPedido

package beans;

//Imports

@Entity
@Table(name="tbItenPedido", schema="public")
public class ItemPedido implements Serializable {

	private static final long serialVersionUID = 1L;
	
	@EmbeddedId
	private ItemPedidoPk itemPedidoPk;
	
	private BigDecimal itpedQtde;
	
	private BigDecimal itpedPrecoVenda;
	
	private BigDecimal itpedPrecoTotal;
	
	@ManyToOne()
	@JoinColumn(name="pro_Cod", referencedColumnName="proCod", insertable=false, nullable=false)
	private Produto produto;
	
	@ManyToOne(cascade=CascadeType.ALL, fetch=FetchType.LAZY)
	@JoinColumn(name="ped_Cod", referencedColumnName="pedCod", insertable=false, nullable=false)
	private Pedido pedido;
	
	public ItemPedido() {
		
	}

        //Getter's e Setter's
}

ItemPedidoPk

package beans;

//Imports

@Embeddable
public class ItemPedidoPk implements Serializable {

	private static final long serialVersionUID = 1L;

	private Integer pedCod;
	
	private Integer proCod;
	
	public ItemPedidoPk() {
	}

       //Getter's e Setter's
}
lucasap2005

Fazendo deste jeito qual problema que está ocorrendo?

fabianofrizzo

Ele da esse erro aqui

21:15:58,859 ERROR [STDERR] java.lang.Exception 21:15:58,859 ERROR [STDERR] at dao.HGenericDao.insert(HGenericDao.java:56) 21:15:58,859 ERROR [STDERR] at pedido.mobile.PedidoMobileAction.save(PedidoM obileAction.java:80) 21:15:58,859 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke0( Native Method) 21:15:58,859 ERROR [STDERR] at sun.reflect.NativeMethodAccessorImpl.invoke(N ativeMethodAccessorImpl.java:39) 21:15:58,859 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invo ke(DelegatingMethodAccessorImpl.java:25) 21:15:58,859 ERROR [STDERR] at java.lang.reflect.Method.invoke(Method.java:5 97) 21:15:58,859 ERROR [STDERR] at org.mentawai.core.InvocationChain.invoke(Invo cationChain.java:278) 21:15:58,859 ERROR [STDERR] at org.mentawai.filter.InjectionFilter.filter(In jectionFilter.java:120) 21:15:58,859 ERROR [STDERR] at org.mentawai.core.InvocationChain.invoke(Invo cationChain.java:137) 21:15:58,859 ERROR [STDERR] at org.mentawai.filter.ConverterFilter.filter(Co nverterFilter.java:85) 21:15:58,859 ERROR [STDERR] at org.mentawai.core.InvocationChain.invoke(Invo cationChain.java:137) 21:15:58,859 ERROR [STDERR] at org.mentawai.filter.ValidatorFilter.filter(Va lidatorFilter.java:154) 21:15:58,859 ERROR [STDERR] at org.mentawai.core.InvocationChain.invoke(Invo cationChain.java:137) 21:15:58,859 ERROR [STDERR] at org.mentawai.filter.HibernateFilter.filter(Hi bernateFilter.java:187) 21:15:58,859 ERROR [STDERR] at org.mentawai.core.InvocationChain.invoke(Invo cationChain.java:137) 21:15:58,859 ERROR [STDERR] at org.mentawai.filter.IoCFilter.filter(IoCFilte r.java:83) 21:15:58,859 ERROR [STDERR] at org.mentawai.core.InvocationChain.invoke(Invo cationChain.java:137) 21:15:58,859 ERROR [STDERR] at org.mentawai.filter.DIFilter.filter(DIFilter. java:206) 21:15:58,859 ERROR [STDERR] at org.mentawai.core.InvocationChain.invoke(Invo cationChain.java:137) 21:15:58,859 ERROR [STDERR] at org.mentawai.core.Controller.invokeAction(Con troller.java:654) 21:15:58,859 ERROR [STDERR] at org.mentawai.core.Controller.service(Controll er.java:519) 21:15:58,859 ERROR [STDERR] at javax.servlet.http.HttpServlet.service(HttpSe rvlet.java:803) 21:15:58,859 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterCha in.internalDoFilter(ApplicationFilterChain.java:290) 21:15:58,859 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterCha in.doFilter(ApplicationFilterChain.java:206) 21:15:58,859 ERROR [STDERR] at org.displaytag.filter.ResponseOverrideFilter. doFilter(ResponseOverrideFilter.java:125) 21:15:58,859 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterCha in.internalDoFilter(ApplicationFilterChain.java:235) 21:15:58,859 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterCha in.doFilter(ApplicationFilterChain.java:206) 21:15:58,859 ERROR [STDERR] at org.jboss.web.tomcat.filters.ReplyHeaderFilte r.doFilter(ReplyHeaderFilter.java:96) 21:15:58,859 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterCha in.internalDoFilter(ApplicationFilterChain.java:235) 21:15:58,859 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterCha in.doFilter(ApplicationFilterChain.java:206) 21:15:58,859 ERROR [STDERR] at org.apache.catalina.core.StandardWrapperValve .invoke(StandardWrapperValve.java:230) 21:15:58,859 ERROR [STDERR] at org.apache.catalina.core.StandardContextValve .invoke(StandardContextValve.java:175) 21:15:58,859 ERROR [STDERR] at org.jboss.web.tomcat.security.SecurityAssocia tionValve.invoke(SecurityAssociationValve.java:179) 21:15:58,859 ERROR [STDERR] at org.jboss.web.tomcat.security.JaccContextValv e.invoke(JaccContextValve.java:84) 21:15:58,859 ERROR [STDERR] at org.apache.catalina.core.StandardHostValve.in voke(StandardHostValve.java:128) 21:15:58,859 ERROR [STDERR] at org.apache.catalina.valves.ErrorReportValve.i nvoke(ErrorReportValve.java:104) 21:15:58,859 ERROR [STDERR] at org.jboss.web.tomcat.service.jca.CachedConnec tionValve.invoke(CachedConnectionValve.java:157) 21:15:58,859 ERROR [STDERR] at org.apache.catalina.core.StandardEngineValve. invoke(StandardEngineValve.java:109) 21:15:58,859 ERROR [STDERR] at org.apache.catalina.connector.CoyoteAdapter.s ervice(CoyoteAdapter.java:241) 21:15:58,859 ERROR [STDERR] at org.apache.coyote.http11.Http11Processor.proc ess(Http11Processor.java:844) 21:15:58,859 ERROR [STDERR] at org.apache.coyote.http11.Http11Protocol$Http1 1ConnectionHandler.process(Http11Protocol.java:580) 21:15:58,859 ERROR [STDERR] at org.apache.tomcat.util.net.JIoEndpoint$Worker .run(JIoEndpoint.java:447) 21:15:58,859 ERROR [STDERR] at java.lang.Thread.run(Thread.java:619)

E se eu mudar a tabela ItemPedido Para

package beans;

//Imports

@Entity

@Table(name=tbItenPedido, schema=public)

public class ItemPedido implements Serializable {
private static final long serialVersionUID = 1L;

//@EmbeddedId
//private ItemPedidoPk itemPedidoPk;
@Id
@SequenceGenerator(name="seqItPed", sequenceName="seqItPed", initialValue=1)
@GeneratedValue(generator="seqItPed", strategy=GenerationType.AUTO)	
private Integer itpedCod;

private Float itpedQtde;

private Float itpedPrecoVenda;

private Float itpedPrecoTotal;

@ManyToOne()
@JoinColumn(name="pro_Cod", referencedColumnName="proCod", insertable=true, updatable=true)
private Produto produto;

@ManyToOne(fetch=FetchType.EAGER)
@JoinColumn(name="ped_Cod", referencedColumnName="pedCod", insertable=true, updatable=true)
@Fetch(FetchMode.JOIN)
@Cascade(CascadeType.SAVE_UPDATE)
private Pedido pedido;

public ItemPedido() {
}

    //Getter's e Setter's

}

Funciona sertinho o que será que pode ser

Criado 19 de maio de 2008
Ultima resposta 19 de mai. de 2008
Respostas 7
Participantes 3