Duvida mapeamento Hibernate

Ola povo. Na minha base de dados tenho as seguintes tabelas

Produto (idProduto, nome, icone, descricao, preco)
Item (idProduto, IdPedido, quantidade)
Pedido (idPedido, mesa, atendido)

Um produto pode estar em varios pedidos e um Pedido e composto por varios produtos, a tabela item faz o “meio campo”. Quando tento executar o codigo abaixo, tenho o erro apresentado no hibernate:

public class CarrinhoBean {
	
	private Produto produto;
	private int quantidade = 0;
	private Set<Item> carrinho = new HashSet<Item>();
	
	public CarrinhoBean(){
		this.produto = new Produto ();		
	}

public void adicionarItemAoCarrinho(){
ItemPK itemPk = new ItemPK();
		itemPk.setPedido(null);
		itemPk.setProduto(produto);
		
		Item item = new Item();
		item.setPk(itemPk);
		item.setQuantidade(quantidade);

		carrinho.add(item);
}

Ao escolher um produto do pedido o mesmo deveria ser adicionado ao carrinho de compras (o produto e quantidade sao carragados do formulario, estou usando JSF), quando ele finalizar o pedido, seriam chamados os metodos para gravar os dados no BD, contudo ao executar carrinho.add(item) o programa apresenta o erro:

130938 ["http-bio-8080"-exec-20] ERROR org.hibernate.LazyInitializationException - illegal access to loading collection
org.hibernate.LazyInitializationException: illegal access to loading collection
	at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:363)
	at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:108)
	at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:434)
	at cardapioDigital.pedido.Pedido.hashCode(Pedido.java:71)
	at cardapioDigital.item.ItemPK.hashCode(ItemPK.java:39)
	at cardapioDigital.item.Item.hashCode(Item.java:53)
	at java.util.HashMap.put(Unknown Source)
	at java.util.HashSet.add(Unknown Source)
	at java.util.AbstractCollection.addAll(Unknown Source)
	at org.hibernate.collection.PersistentSet.endRead(PersistentSet.java:352)
	at org.hibernate.engine.loading.CollectionLoadContext.endLoadingCollection(CollectionLoadContext.java:260)
	at org.hibernate.engine.loading.CollectionLoadContext.endLoadingCollections(CollectionLoadContext.java:245)
	at org.hibernate.engine.loading.CollectionLoadContext.endLoadingCollections(CollectionLoadContext.java:218)
	at org.hibernate.loader.Loader.endCollectionLoad(Loader.java:921)
	at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:909)
	at org.hibernate.loader.Loader.doQuery(Loader.java:773)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:270)
	at org.hibernate.loader.Loader.loadCollection(Loader.java:2062)
	at org.hibernate.loader.collection.CollectionLoader.initialize(CollectionLoader.java:62)
	at org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:628)
	at org.hibernate.event.def.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:83)
	at org.hibernate.impl.SessionImpl.initializeCollection(SessionImpl.java:1853)
	at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:366)
	at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:108)
	at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:434)
	at cardapioDigital.pedido.Pedido.hashCode(Pedido.java:71)
	at cardapioDigital.item.ItemPK.hashCode(ItemPK.java:39)
	at cardapioDigital.item.Item.hashCode(Item.java:53)
	at java.util.HashMap.put(Unknown Source)
	at java.util.HashSet.add(Unknown Source)
	at java.util.AbstractCollection.addAll(Unknown Source)
	at org.hibernate.collection.PersistentSet.endRead(PersistentSet.java:352)
	at org.hibernate.engine.loading.CollectionLoadContext.endLoadingCollection(CollectionLoadContext.java:260)
	at org.hibernate.engine.loading.CollectionLoadContext.endLoadingCollections(CollectionLoadContext.java:245)
	at org.hibernate.engine.loading.CollectionLoadContext.endLoadingCollections(CollectionLoadContext.java:218)
	at org.hibernate.loader.Loader.endCollectionLoad(Loader.java:921)
	at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:909)
	at org.hibernate.loader.Loader.doQuery(Loader.java:773)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:270)
	at org.hibernate.loader.Loader.loadCollection(Loader.java:2062)
	at org.hibernate.loader.collection.CollectionLoader.initialize(CollectionLoader.java:62)
	at org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:628)
	at org.hibernate.event.def.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:83)
	at org.hibernate.impl.SessionImpl.initializeCollection(SessionImpl.java:1853)
	at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:366)
	at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:108)
	at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:434)
	at cardapioDigital.produto.Produto.hashCode(Produto.java:103)
	at cardapioDigital.item.ItemPK.hashCode(ItemPK.java:40)
	at cardapioDigital.item.Item.hashCode(Item.java:53)
	at java.util.HashMap.put(Unknown Source)
	at java.util.HashSet.add(Unknown Source)
	at cardapioDigital.web.CarrinhoBean.adicionarItemAoCarrinho(CarrinhoBean.java:75)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.el.parser.AstValue.invoke(AstValue.java:262)
	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278)
	at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
	at javax.faces.component.UICommand.broadcast(UICommand.java:315)
	at javax.faces.component.UIData.broadcast(UIData.java:1093)
	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:409)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at cardapioDigital.web.filter.ConexaoHibernateFilter.doFilter(ConexaoHibernateFilter.java:64)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:498)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:394)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
17/04/2011 21:59:53 com.sun.faces.lifecycle.InvokeApplicationPhase execute
AVISO: #{carrinhoBean.adicionarItemAoCarrinho}: org.hibernate.LazyInitializationException: illegal access to loading collection
javax.faces.FacesException: #{carrinhoBean.adicionarItemAoCarrinho}: org.hibernate.LazyInitializationException: illegal access to loading collection
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:118)
	at javax.faces.component.UICommand.broadcast(UICommand.java:315)
	at javax.faces.component.UIData.broadcast(UIData.java:1093)
	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:409)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at cardapioDigital.web.filter.ConexaoHibernateFilter.doFilter(ConexaoHibernateFilter.java:64)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:498)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:394)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: javax.faces.el.EvaluationException: org.hibernate.LazyInitializationException: illegal access to loading collection
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102)
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
	... 27 more
Caused by: org.hibernate.LazyInitializationException: illegal access to loading collection
	at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:363)
	at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:108)
	at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:434)
	at cardapioDigital.pedido.Pedido.hashCode(Pedido.java:71)
	at cardapioDigital.item.ItemPK.hashCode(ItemPK.java:39)
	at cardapioDigital.item.Item.hashCode(Item.java:53)
	at java.util.HashMap.put(Unknown Source)
	at java.util.HashSet.add(Unknown Source)
	at java.util.AbstractCollection.addAll(Unknown Source)
	at org.hibernate.collection.PersistentSet.endRead(PersistentSet.java:352)
	at org.hibernate.engine.loading.CollectionLoadContext.endLoadingCollection(CollectionLoadContext.java:260)
	at org.hibernate.engine.loading.CollectionLoadContext.endLoadingCollections(CollectionLoadContext.java:245)
	at org.hibernate.engine.loading.CollectionLoadContext.endLoadingCollections(CollectionLoadContext.java:218)
	at org.hibernate.loader.Loader.endCollectionLoad(Loader.java:921)
	at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:909)
	at org.hibernate.loader.Loader.doQuery(Loader.java:773)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:270)
	at org.hibernate.loader.Loader.loadCollection(Loader.java:2062)
	at org.hibernate.loader.collection.CollectionLoader.initialize(CollectionLoader.java:62)
	at org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:628)
	at org.hibernate.event.def.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:83)
	at org.hibernate.impl.SessionImpl.initializeCollection(SessionImpl.java:1853)
	at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:366)
	at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:108)
	at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:434)
	at cardapioDigital.pedido.Pedido.hashCode(Pedido.java:71)
	at cardapioDigital.item.ItemPK.hashCode(ItemPK.java:39)
	at cardapioDigital.item.Item.hashCode(Item.java:53)
	at java.util.HashMap.put(Unknown Source)
	at java.util.HashSet.add(Unknown Source)
	at java.util.AbstractCollection.addAll(Unknown Source)
	at org.hibernate.collection.PersistentSet.endRead(PersistentSet.java:352)
	at org.hibernate.engine.loading.CollectionLoadContext.endLoadingCollection(CollectionLoadContext.java:260)
	at org.hibernate.engine.loading.CollectionLoadContext.endLoadingCollections(CollectionLoadContext.java:245)
	at org.hibernate.engine.loading.CollectionLoadContext.endLoadingCollections(CollectionLoadContext.java:218)
	at org.hibernate.loader.Loader.endCollectionLoad(Loader.java:921)
	at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:909)
	at org.hibernate.loader.Loader.doQuery(Loader.java:773)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:270)
	at org.hibernate.loader.Loader.loadCollection(Loader.java:2062)
	at org.hibernate.loader.collection.CollectionLoader.initialize(CollectionLoader.java:62)
	at org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:628)
	at org.hibernate.event.def.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:83)
	at org.hibernate.impl.SessionImpl.initializeCollection(SessionImpl.java:1853)
	at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:366)
	at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:108)
	at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:434)
	at cardapioDigital.produto.Produto.hashCode(Produto.java:103)
	at cardapioDigital.item.ItemPK.hashCode(ItemPK.java:40)
	at cardapioDigital.item.Item.hashCode(Item.java:53)
	at java.util.HashMap.put(Unknown Source)
	at java.util.HashSet.add(Unknown Source)
	at cardapioDigital.web.CarrinhoBean.adicionarItemAoCarrinho(CarrinhoBean.java:75)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.el.parser.AstValue.invoke(AstValue.java:262)
	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278)
	at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
	... 28 more
130982 ["http-bio-8080"-exec-20] WARN org.hibernate.engine.loading.LoadContexts - fail-safe cleanup (collections) : org.hibernate.engine.loading.CollectionLoadContext@5d0769dd<rs=com.mysql.jdbc.JDBC4ResultSet@c3b5587>
130982 ["http-bio-8080"-exec-20] WARN org.hibernate.engine.loading.LoadContexts - fail-safe cleanup (collections) : org.hibernate.engine.loading.CollectionLoadContext@11b75be2<rs=com.mysql.jdbc.JDBC4ResultSet@76a14c53>
17/04/2011 21:59:53 org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet [Faces Servlet] in context with path [/cardapioDigital] threw exception [javax.servlet.ServletException: org.hibernate.LazyInitializationException: illegal access to loading collection] with root cause
org.hibernate.LazyInitializationException: illegal access to loading collection
	at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:363)
	at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:108)
	at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:434)
	at cardapioDigital.pedido.Pedido.hashCode(Pedido.java:71)
	at cardapioDigital.item.ItemPK.hashCode(ItemPK.java:39)
	at cardapioDigital.item.Item.hashCode(Item.java:53)
	at java.util.HashMap.put(Unknown Source)
	at java.util.HashSet.add(Unknown Source)
	at java.util.AbstractCollection.addAll(Unknown Source)
	at org.hibernate.collection.PersistentSet.endRead(PersistentSet.java:352)
	at org.hibernate.engine.loading.CollectionLoadContext.endLoadingCollection(CollectionLoadContext.java:260)
	at org.hibernate.engine.loading.CollectionLoadContext.endLoadingCollections(CollectionLoadContext.java:245)
	at org.hibernate.engine.loading.CollectionLoadContext.endLoadingCollections(CollectionLoadContext.java:218)
	at org.hibernate.loader.Loader.endCollectionLoad(Loader.java:921)
	at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:909)
	at org.hibernate.loader.Loader.doQuery(Loader.java:773)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:270)
	at org.hibernate.loader.Loader.loadCollection(Loader.java:2062)
	at org.hibernate.loader.collection.CollectionLoader.initialize(CollectionLoader.java:62)
	at org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:628)
	at org.hibernate.event.def.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:83)
	at org.hibernate.impl.SessionImpl.initializeCollection(SessionImpl.java:1853)
	at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:366)
	at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:108)
	at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:434)
	at cardapioDigital.pedido.Pedido.hashCode(Pedido.java:71)
	at cardapioDigital.item.ItemPK.hashCode(ItemPK.java:39)
	at cardapioDigital.item.Item.hashCode(Item.java:53)
	at java.util.HashMap.put(Unknown Source)
	at java.util.HashSet.add(Unknown Source)
	at java.util.AbstractCollection.addAll(Unknown Source)
	at org.hibernate.collection.PersistentSet.endRead(PersistentSet.java:352)
	at org.hibernate.engine.loading.CollectionLoadContext.endLoadingCollection(CollectionLoadContext.java:260)
	at org.hibernate.engine.loading.CollectionLoadContext.endLoadingCollections(CollectionLoadContext.java:245)
	at org.hibernate.engine.loading.CollectionLoadContext.endLoadingCollections(CollectionLoadContext.java:218)
	at org.hibernate.loader.Loader.endCollectionLoad(Loader.java:921)
	at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:909)
	at org.hibernate.loader.Loader.doQuery(Loader.java:773)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:270)
	at org.hibernate.loader.Loader.loadCollection(Loader.java:2062)
	at org.hibernate.loader.collection.CollectionLoader.initialize(CollectionLoader.java:62)
	at org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:628)
	at org.hibernate.event.def.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:83)
	at org.hibernate.impl.SessionImpl.initializeCollection(SessionImpl.java:1853)
	at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:366)
	at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:108)
	at org.hibernate.collection.PersistentSet.hashCode(PersistentSet.java:434)
	at cardapioDigital.produto.Produto.hashCode(Produto.java:103)
	at cardapioDigital.item.ItemPK.hashCode(ItemPK.java:40)
	at cardapioDigital.item.Item.hashCode(Item.java:53)
	at java.util.HashMap.put(Unknown Source)
	at java.util.HashSet.add(Unknown Source)
	at cardapioDigital.web.CarrinhoBean.adicionarItemAoCarrinho(CarrinhoBean.java:75)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.el.parser.AstValue.invoke(AstValue.java:262)
	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278)
	at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)
	at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
	at javax.faces.component.UICommand.broadcast(UICommand.java:315)
	at javax.faces.component.UIData.broadcast(UIData.java:1093)
	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
	at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
	at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:409)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at cardapioDigital.web.filter.ConexaoHibernateFilter.doFilter(ConexaoHibernateFilter.java:64)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:498)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:394)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:243)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

Classe Produto

@Entity
@Table(name="produto")

public class Produto implements Serializable {
	

	/**
	 * 
	 */
	private static final long serialVersionUID = -7829471510265294346L;

	@Id
	@GeneratedValue
	private Integer idProduto;
	
	private String nome;
	private String icone;
	private float preco;
	private String descricao;
	
	
	@ManyToOne
	@JoinColumn(name = "idSessao")
	private Menu idSessao;
	
	@OneToMany(mappedBy="pk.produto") 
	private Set<Item> produtos = new HashSet<Item>();

	//set, getters, hascode e equals

}

Classe pedido


@Entity
@Table(name = "pedido")
public class Pedido  implements Serializable{
	
	private static final long serialVersionUID = 3785719005255246682L;

	@Id
	@GeneratedValue
	private Integer idPedido;
	
	private int mesa;
	private boolean atendido;
	
	@OneToMany(mappedBy="pk.pedido")
	private Set<Item> produtos = new HashSet<Item>();
								  
//set, getters, hascode e equals
}

Classe item


@Entity
@Table(name = "item")
@AssociationOverrides({
 @AssociationOverride(name="pk.produto", joinColumns = @JoinColumn(name="idProduto")),
 @AssociationOverride(name="pk.pedido", joinColumns = @JoinColumn(name="idPedido"))
})
public class Item implements Serializable {
	

	private static final long serialVersionUID = 8935660213530827053L;

	@Id
	private ItemPK pk = new ItemPK();
	
	private int quantidade;
//set, getters, hascode e equals
}

ItemPK


@Embeddable
public class ItemPK implements Serializable{

	private static final long serialVersionUID = -6435992554873569023L;
	
	@ManyToOne
	private Produto produto;
	@ManyToOne
	private Pedido pedido;
	//set, getters, hascode e equals
		

}

Estou fazendo algum mapeamento de forma erronea? Esqueci de algo?

rauppluizfr,

Na classe ItemPK

tenta mudar essa parte:

@ManyToOne  
    private Produto produto; 

Para…

@OneToOne  
    private Produto produto; 

Onde pelo que ví você teria um Item para cada produto…
Da uma olhada ai

Obrigado pela ajuda, mas n resolveu kra …

Acho que minha duvida reside no como os dados devem ser gravados e como realizar as pesquisas, pq pelo que li por ai o mapeamento me parece estar correto. Para salvar eu primeiro persisto o pedido e depois os itens do pedido um por um (é o unico modo que cosigo gravar os dados no BD, o que acho que nao esta certo pq em nenhum momento utilizo a collection, na verdade nem um carriinho de compras eu monto direito ja que sempre que tento usar um Set de itens tenho algum tipo de erro). Quanto as pesquisas, simplesmente nao consigo faze-las, se simplesmente puxo a Collection do pedido ou do produto tenho erro de acesso ilegal, c tento usar join entre a tabela item ou produto, para obter os dados dos produtos do pedido, tambem soh encontro o hibernate “berrando”, isso usando criteria ou strings com o comando sql (query).

Codigo de como estou persistindo os dados no BD atualmente

                Pedido pedido = new Pedido();
		pedido.setMesa(6);
		
		PedidoRN pedidoRN = new PedidoRN();
		pedidoRN.salvar(pedido);
		
		Produto produto = new Produto();
		ProdutoRN produtoRN = new ProdutoRN();
		produto = produtoRN.getProdutoPelaID(2); //soh puxo um produto qquer do BD para testes
		
		ItemPK itemPk = new ItemPK();
		itemPk.setPedido(pedido);
		itemPk.setProduto(produto);
		
		Item item = new Item();
		item.setPk(itemPk);
		item.setQuantidade(2);
		
		ItemRN itemRN = new ItemRN();
		itemRN.salvar(item);

Se for o caso, posso postar os erros qundo tento usar uma collection