[RESOLVIDO]DWR e Hibernate :: Problema em carregar coleções Lazy

3 respostas
marciobarroso

E ae pessoALL,

Estou com uma dúvida no DWR.

Tenho uma requisição simples onde recupero uma lista com alguns objetos.

Tenho o fluxo :

1 - Jsp envia a requisição para a interface do DWR;

2 - DWR direciona para o class específico para recuperar os objetos;

3 - A classe faz o acesso a camada dao e recupera os objetos;

4 - Objetos são devolvidos para o jsp;

5 - Jsp apresenta os valores.

O que está acontecendo ?

[2006-08-04 14:18:01,606][debug] DEBUG (CommonsLoggingOutput.java:28) POST line: callCount=1 
[2006-08-04 14:18:01,606][debug] DEBUG (CommonsLoggingOutput.java:28) POST line: c0-scriptName=Ajax 
[2006-08-04 14:18:01,606][debug] DEBUG (CommonsLoggingOutput.java:28) POST line: c0-methodName=buscarProduto 
[2006-08-04 14:18:01,606][debug] DEBUG (CommonsLoggingOutput.java:28) POST line: c0-id=9750_1154711881596 
[2006-08-04 14:18:01,606][debug] DEBUG (CommonsLoggingOutput.java:28) POST line: c0-param0=string:4 
[2006-08-04 14:18:01,606][debug] DEBUG (CommonsLoggingOutput.java:28) POST line: c0-param1=null:null 
[2006-08-04 14:18:01,606][debug] DEBUG (CommonsLoggingOutput.java:28) POST line: xml=true 
[2006-08-04 14:18:01,616][debug] DEBUG (CommonsLoggingOutput.java:28) Call[0]: Ajax.buscarProduto(); 
[2006-08-04 14:18:01,616][debug] DEBUG (CommonsLoggingOutput.java:28)   Param: 0=string:4 
[2006-08-04 14:18:01,616][debug] DEBUG (CommonsLoggingOutput.java:28)   Param: 1=null:null 
[2006-08-04 14:18:01,616][debug] DEBUG (CommonsLoggingOutput.java:28)   Env: c0-param1=null:null 
[2006-08-04 14:18:01,616][debug] DEBUG (CommonsLoggingOutput.java:28)   Env: c0-param0=string:4 
[2006-08-04 14:18:01,616][info] INFO  (CommonsLoggingOutput.java:36) Executing: public static java.util.List sgv.view.action.util.Ajax.buscarProduto(java.lang.String,java.lang.String) 
[2006-08-04 14:18:01,616][<init>] DEBUG (SessionImpl.java:219) opened session at timestamp: 4729699867099136 
[2006-08-04 14:18:01,627][logOpenPreparedStatement] DEBUG (AbstractBatcher.java:358) about to open PreparedStatement (open PreparedStatements: 0, globally: 0) 
[2006-08-04 14:18:01,627][openConnection] DEBUG (ConnectionManager.java:415) opening JDBC connection 
[2006-08-04 14:18:01,627][getConnection] DEBUG (DriverManagerConnectionProvider.java:93) total checked-out connections: 0 
[2006-08-04 14:18:01,627][getConnection] DEBUG (DriverManagerConnectionProvider.java:99) using pooled JDBC connection, pool size: 0 
[2006-08-04 14:18:01,627][log] DEBUG (AbstractBatcher.java:393) select this_.id as id10_0_, this_.codigo as codigo10_0_, this_.descricao as descricao10_0_, this_.preco as preco10_0_, this_.desconto as desconto10_0_, this_.aplicarDesconto as aplicarD6_10_0_, this_.descontoPercentual as desconto7_10_0_ from Produto this_ where this_.codigo like ? 
[2006-08-04 14:18:01,627][getPreparedStatement] DEBUG (AbstractBatcher.java:476) preparing statement 
[2006-08-04 14:18:01,637][nullSafeSet] DEBUG (NullableType.java:80) binding '4%' to parameter: 1 
[2006-08-04 14:18:01,637][logOpenResults] DEBUG (AbstractBatcher.java:374) about to open ResultSet (open ResultSets: 0, globally: 0) 
[2006-08-04 14:18:01,637][doQuery] DEBUG (Loader.java:682) processing result set 
[2006-08-04 14:18:01,637][doQuery] DEBUG (Loader.java:687) result set row: 0 
[2006-08-04 14:18:01,637][nullSafeGet] DEBUG (NullableType.java:122) returning '1' as column: id10_0_ 
[2006-08-04 14:18:01,637][getRow] DEBUG (Loader.java:1164) result row: EntityKey[sgv.modell.modelo.Produto#1] 
[2006-08-04 14:18:01,637][loadFromResultSet] DEBUG (Loader.java:1347) Initializing object from ResultSet: [sgv.modell.modelo.Produto#1] 
[2006-08-04 14:18:01,637][hydrate] DEBUG (AbstractEntityPersister.java:1944) Hydrating entity: [sgv.modell.modelo.Produto#1] 
[2006-08-04 14:18:01,637][nullSafeGet] DEBUG (NullableType.java:122) returning '4537' as column: codigo10_0_ 
[2006-08-04 14:18:01,637][nullSafeGet] DEBUG (NullableType.java:122) returning 'Cartucho colorido HP427' as column: descricao10_0_ 
[2006-08-04 14:18:01,637][nullSafeGet] DEBUG (NullableType.java:122) returning '45.0' as column: preco10_0_ 
[2006-08-04 14:18:01,637][nullSafeGet] DEBUG (NullableType.java:122) returning '10.0' as column: desconto10_0_ 
[2006-08-04 14:18:01,647][nullSafeGet] DEBUG (NullableType.java:122) returning 'false' as column: aplicarD6_10_0_ 
[2006-08-04 14:18:01,647][nullSafeGet] DEBUG (NullableType.java:122) returning 'false' as column: desconto7_10_0_ 
[2006-08-04 14:18:01,647][doQuery] DEBUG (Loader.java:687) result set row: 1 
[2006-08-04 14:18:01,647][nullSafeGet] DEBUG (NullableType.java:122) returning '2' as column: id10_0_ 
[2006-08-04 14:18:01,647][getRow] DEBUG (Loader.java:1164) result row: EntityKey[sgv.modell.modelo.Produto#2] 
[2006-08-04 14:18:01,647][loadFromResultSet] DEBUG (Loader.java:1347) Initializing object from ResultSet: [sgv.modell.modelo.Produto#2] 
[2006-08-04 14:18:01,647][hydrate] DEBUG (AbstractEntityPersister.java:1944) Hydrating entity: [sgv.modell.modelo.Produto#2] 
[2006-08-04 14:18:01,647][nullSafeGet] DEBUG (NullableType.java:122) returning '4218' as column: codigo10_0_ 
[2006-08-04 14:18:01,647][nullSafeGet] DEBUG (NullableType.java:122) returning 'Cartucho preto HP421' as column: descricao10_0_ 
[2006-08-04 14:18:01,647][nullSafeGet] DEBUG (NullableType.java:122) returning '32.0' as column: preco10_0_ 
[2006-08-04 14:18:01,647][nullSafeGet] DEBUG (NullableType.java:122) returning '5.0' as column: desconto10_0_ 
[2006-08-04 14:18:01,647][nullSafeGet] DEBUG (NullableType.java:122) returning 'false' as column: aplicarD6_10_0_ 
[2006-08-04 14:18:01,657][nullSafeGet] DEBUG (NullableType.java:122) returning 'false' as column: desconto7_10_0_ 
[2006-08-04 14:18:01,657][doQuery] DEBUG (Loader.java:709) done processing result set (2 rows) 
[2006-08-04 14:18:01,657][logCloseResults] DEBUG (AbstractBatcher.java:381) about to close ResultSet (open ResultSets: 1, globally: 1) 
[2006-08-04 14:18:01,657][logClosePreparedStatement] DEBUG (AbstractBatcher.java:366) about to close PreparedStatement (open PreparedStatements: 1, globally: 1) 
[2006-08-04 14:18:01,657][closePreparedStatement] DEBUG (AbstractBatcher.java:525) closing statement 
[2006-08-04 14:18:01,657][initializeEntitiesAndCollections] DEBUG (Loader.java:839) total objects hydrated: 2 
[2006-08-04 14:18:01,657][initializeEntity] DEBUG (TwoPhaseLoad.java:107) resolving associations for [sgv.modell.modelo.Produto#1] 
[2006-08-04 14:18:01,667][getLoadingCollection] DEBUG (CollectionLoadContext.java:141) creating collection wrapper:[sgv.modell.modelo.Produto.pedido#1] 
[2006-08-04 14:18:01,677][initializeEntity] DEBUG (TwoPhaseLoad.java:206) done materializing entity [sgv.modell.modelo.Produto#1] 
[2006-08-04 14:18:01,677][initializeEntity] DEBUG (TwoPhaseLoad.java:107) resolving associations for [sgv.modell.modelo.Produto#2] 
[2006-08-04 14:18:01,677][getLoadingCollection] DEBUG (CollectionLoadContext.java:141) creating collection wrapper:[sgv.modell.modelo.Produto.pedido#2] 
[2006-08-04 14:18:01,677][initializeEntity] DEBUG (TwoPhaseLoad.java:206) done materializing entity [sgv.modell.modelo.Produto#2] 
[2006-08-04 14:18:01,687][initializeNonLazyCollections] DEBUG (StatefulPersistenceContext.java:748) initializing non-lazy collections 
[2006-08-04 14:18:01,687][afterNontransactionalQuery] DEBUG (JDBCContext.java:226) after autocommit 
[2006-08-04 14:18:01,687][aggressiveRelease] DEBUG (ConnectionManager.java:398) aggressively releasing JDBC connection 
[2006-08-04 14:18:01,687][closeConnection] DEBUG (ConnectionManager.java:435) releasing JDBC connection [ (open PreparedStatements: 0, globally: 0) (open ResultSets: 0, globally: 0)] 
[2006-08-04 14:18:01,687][closeConnection] DEBUG (DriverManagerConnectionProvider.java:129) returning connection to pool, pool size: 1 
[2006-08-04 14:18:01,687][onInitializeCollection] DEBUG (DefaultInitializeCollectionEventListener.java:41) initializing collection [sgv.modell.modelo.Produto.pedido#1] 
[2006-08-04 14:18:01,687][onInitializeCollection] DEBUG (DefaultInitializeCollectionEventListener.java:47) checking second-level cache 
[2006-08-04 14:18:01,687][onInitializeCollection] DEBUG (DefaultInitializeCollectionEventListener.java:59) collection not cached 
[2006-08-04 14:18:01,697][loadCollectionBatch] DEBUG (Loader.java:1948) batch loading collection: [sgv.modell.modelo.Produto.pedido#<1, 2>] 
[2006-08-04 14:18:01,697][logOpenPreparedStatement] DEBUG (AbstractBatcher.java:358) about to open PreparedStatement (open PreparedStatements: 0, globally: 0) 
[2006-08-04 14:18:01,697][openConnection] DEBUG (ConnectionManager.java:415) opening JDBC connection 
[2006-08-04 14:18:01,697][getConnection] DEBUG (DriverManagerConnectionProvider.java:93) total checked-out connections: 0 
[2006-08-04 14:18:01,697][getConnection] DEBUG (DriverManagerConnectionProvider.java:99) using pooled JDBC connection, pool size: 0 
[2006-08-04 14:18:01,697][log] DEBUG (AbstractBatcher.java:393) select pedido0_.Produto_id as Produto1_5_, pedido0_.pedido_id as pedido2_5_, pedido1_.id as id8_0_, pedido1_.empresa_id as empresa7_8_0_, pedido1_.endereco_id as endereco8_8_0_, pedido1_.pagamento_id as pagamento9_8_0_, pedido1_.usuario_id as usuario10_8_0_, pedido1_.data as data8_0_, pedido1_.totalPedido as totalPed3_8_0_, pedido1_.desconto as desconto8_0_, pedido1_.aplicarDesconto as aplicarD5_8_0_, pedido1_.descontoPercentual as desconto6_8_0_, empresa2_.id as id2_1_, empresa2_.codigo as codigo2_1_, empresa2_.cnpjNum as cnpjNum2_1_, empresa2_.cnpjFil as cnpjFil2_1_, empresa2_.cnpjDig as cnpjDig2_1_, empresa2_.nome as nome2_1_, empresa2_.nomeFantasia as nomeFant7_2_1_, empresa2_.inscricaoEstadual as inscrica8_2_1_, empresa2_.inscricaoMunicipal as inscrica9_2_1_, endereco3_.id as id4_2_, endereco3_.numero as numero4_2_, endereco3_.cep_id as cep4_4_2_, endereco3_.principal as principal4_2_, pagamento4_.id as id6_3_, pagamento4_.descricao as descricao6_3_, pagamento4_.dias as dias6_3_, usuario5_.id as id11_4_, usuario5_.nome as nome11_4_, usuario5_.sobrenome as sobrenome11_4_, usuario5_.email as email11_4_, usuario5_.login as login11_4_, usuario5_.senha as senha11_4_, usuario5_.lembreteSenha as lembrete7_11_4_ from Produto_Pedido pedido0_ left outer join Pedido pedido1_ on pedido0_.pedido_id=pedido1_.id left outer join Empresa empresa2_ on pedido1_.empresa_id=empresa2_.id left outer join Endereco endereco3_ on pedido1_.endereco_id=endereco3_.id left outer join Pagamento pagamento4_ on pedido1_.pagamento_id=pagamento4_.id left outer join Usuario usuario5_ on pedido1_.usuario_id=usuario5_.id where pedido0_.Produto_id in (?, ?) 
[2006-08-04 14:18:01,737][getPreparedStatement] DEBUG (AbstractBatcher.java:476) preparing statement 
[2006-08-04 14:18:01,767][nullSafeSet] DEBUG (NullableType.java:80) binding '1' to parameter: 1 
[2006-08-04 14:18:01,767][nullSafeSet] DEBUG (NullableType.java:80) binding '2' to parameter: 2 
[2006-08-04 14:18:01,847][logClosePreparedStatement] DEBUG (AbstractBatcher.java:366) about to close PreparedStatement (open PreparedStatements: 1, globally: 1) 
[2006-08-04 14:18:01,847][closePreparedStatement] DEBUG (AbstractBatcher.java:525) closing statement 
[2006-08-04 14:18:01,847][logExceptions] DEBUG (JDBCExceptionReporter.java:63) could not initialize a collection batch: [sgv.modell.modelo.Produto.pedido#<1, 2>] [select pedido0_.Produto_id as Produto1_5_, pedido0_.pedido_id as pedido2_5_, pedido1_.id as id8_0_, pedido1_.empresa_id as empresa7_8_0_, pedido1_.endereco_id as endereco8_8_0_, pedido1_.pagamento_id as pagamento9_8_0_, pedido1_.usuario_id as usuario10_8_0_, pedido1_.data as data8_0_, pedido1_.totalPedido as totalPed3_8_0_, pedido1_.desconto as desconto8_0_, pedido1_.aplicarDesconto as aplicarD5_8_0_, pedido1_.descontoPercentual as desconto6_8_0_, empresa2_.id as id2_1_, empresa2_.codigo as codigo2_1_, empresa2_.cnpjNum as cnpjNum2_1_, empresa2_.cnpjFil as cnpjFil2_1_, empresa2_.cnpjDig as cnpjDig2_1_, empresa2_.nome as nome2_1_, empresa2_.nomeFantasia as nomeFant7_2_1_, empresa2_.inscricaoEstadual as inscrica8_2_1_, empresa2_.inscricaoMunicipal as inscrica9_2_1_, endereco3_.id as id4_2_, endereco3_.numero as numero4_2_, endereco3_.cep_id as cep4_4_2_, endereco3_.principal as principal4_2_, pagamento4_.id as id6_3_, pagamento4_.descricao as descricao6_3_, pagamento4_.dias as dias6_3_, usuario5_.id as id11_4_, usuario5_.nome as nome11_4_, usuario5_.sobrenome as sobrenome11_4_, usuario5_.email as email11_4_, usuario5_.login as login11_4_, usuario5_.senha as senha11_4_, usuario5_.lembreteSenha as lembrete7_11_4_ from Produto_Pedido pedido0_ left outer join Pedido pedido1_ on pedido0_.pedido_id=pedido1_.id left outer join Empresa empresa2_ on pedido1_.empresa_id=empresa2_.id left outer join Endereco endereco3_ on pedido1_.endereco_id=endereco3_.id left outer join Pagamento pagamento4_ on pedido1_.pagamento_id=pagamento4_.id left outer join Usuario usuario5_ on pedido1_.usuario_id=usuario5_.id where pedido0_.Produto_id in (?, ?)] 
java.sql.SQLException: Table 'sgv.produto_pedido' doesn't exist
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2928)
	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1571)
	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1666)
	at com.mysql.jdbc.Connection.execSQL(Connection.java:2994)
	at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:936)
	at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1030)
	at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186)
	at org.hibernate.loader.Loader.getResultSet(Loader.java:1669)
	at org.hibernate.loader.Loader.doQuery(Loader.java:662)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
	at org.hibernate.loader.Loader.loadCollectionBatch(Loader.java:1957)
	at org.hibernate.loader.collection.BatchingCollectionInitializer.initialize(BatchingCollectionInitializer.java:47)
	at org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:520)
	at org.hibernate.event.def.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:60)
	at org.hibernate.impl.SessionImpl.initializeCollection(SessionImpl.java:1679)
	at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:344)
	at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:86)
	at org.hibernate.collection.PersistentBag.iterator(PersistentBag.java:246)
	at uk.ltd.getahead.dwr.convert.CollectionConverter.convertOutbound(CollectionConverter.java:161)
	at uk.ltd.getahead.dwr.impl.DefaultConverterManager.convertOutbound(DefaultConverterManager.java:174)
	at uk.ltd.getahead.dwr.convert.BeanConverter.convertOutbound(BeanConverter.java:285)
	at uk.ltd.getahead.dwr.impl.DefaultConverterManager.convertOutbound(DefaultConverterManager.java:174)
	at uk.ltd.getahead.dwr.convert.CollectionConverter.convertOutbound(CollectionConverter.java:180)
	at uk.ltd.getahead.dwr.impl.DefaultConverterManager.convertOutbound(DefaultConverterManager.java:174)
	at uk.ltd.getahead.dwr.impl.ExecuteQuery.execute(ExecuteQuery.java:172)
	at uk.ltd.getahead.dwr.impl.DefaultProcessor.doExec(DefaultProcessor.java:552)
	at uk.ltd.getahead.dwr.impl.DefaultProcessor.handle(DefaultProcessor.java:88)
	at uk.ltd.getahead.dwr.DWRServlet.doPost(DWRServlet.java:178)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	at java.lang.Thread.run(Thread.java:595)
[2006-08-04 14:18:01,857][logExceptions] WARN  (JDBCExceptionReporter.java:71) SQL Error: 1146, SQLState: 42S02 
[2006-08-04 14:18:01,857][logExceptions] ERROR (JDBCExceptionReporter.java:72) Table 'sgv.produto_pedido' doesn't exist 
[2006-08-04 14:18:01,857][warn] WARN  (CommonsLoggingOutput.java:52) Failed to convert pedido 
org.hibernate.exception.SQLGrammarException: could not initialize a collection batch: [sgv.modell.modelo.Produto.pedido#<1, 2>]
	at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
	at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
	at org.hibernate.loader.Loader.loadCollectionBatch(Loader.java:1964)
	at org.hibernate.loader.collection.BatchingCollectionInitializer.initialize(BatchingCollectionInitializer.java:47)
	at org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:520)
	at org.hibernate.event.def.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:60)
	at org.hibernate.impl.SessionImpl.initializeCollection(SessionImpl.java:1679)
	at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:344)
	at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:86)
	at org.hibernate.collection.PersistentBag.iterator(PersistentBag.java:246)
	at uk.ltd.getahead.dwr.convert.CollectionConverter.convertOutbound(CollectionConverter.java:161)
	at uk.ltd.getahead.dwr.impl.DefaultConverterManager.convertOutbound(DefaultConverterManager.java:174)
	at uk.ltd.getahead.dwr.convert.BeanConverter.convertOutbound(BeanConverter.java:285)
	at uk.ltd.getahead.dwr.impl.DefaultConverterManager.convertOutbound(DefaultConverterManager.java:174)
	at uk.ltd.getahead.dwr.convert.CollectionConverter.convertOutbound(CollectionConverter.java:180)
	at uk.ltd.getahead.dwr.impl.DefaultConverterManager.convertOutbound(DefaultConverterManager.java:174)
	at uk.ltd.getahead.dwr.impl.ExecuteQuery.execute(ExecuteQuery.java:172)
	at uk.ltd.getahead.dwr.impl.DefaultProcessor.doExec(DefaultProcessor.java:552)
	at uk.ltd.getahead.dwr.impl.DefaultProcessor.handle(DefaultProcessor.java:88)
	at uk.ltd.getahead.dwr.DWRServlet.doPost(DWRServlet.java:178)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	at java.lang.Thread.run(Thread.java:595)
Caused by: java.sql.SQLException: Table 'sgv.produto_pedido' doesn't exist
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2928)
	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1571)
	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1666)
	at com.mysql.jdbc.Connection.execSQL(Connection.java:2994)
	at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:936)
	at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1030)
	at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186)
	at org.hibernate.loader.Loader.getResultSet(Loader.java:1669)
	at org.hibernate.loader.Loader.doQuery(Loader.java:662)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
	at org.hibernate.loader.Loader.loadCollectionBatch(Loader.java:1957)
	... 33 more
[2006-08-04 14:18:01,877][onInitializeCollection] DEBUG (DefaultInitializeCollectionEventListener.java:41) initializing collection [sgv.modell.modelo.Produto.pedido#2] 
[2006-08-04 14:18:01,887][onInitializeCollection] DEBUG (DefaultInitializeCollectionEventListener.java:47) checking second-level cache 
[2006-08-04 14:18:01,887][onInitializeCollection] DEBUG (DefaultInitializeCollectionEventListener.java:59) collection not cached 
[2006-08-04 14:18:01,887][loadCollectionBatch] DEBUG (Loader.java:1948) batch loading collection: [sgv.modell.modelo.Produto.pedido#<2, 1>] 
[2006-08-04 14:18:01,887][logOpenPreparedStatement] DEBUG (AbstractBatcher.java:358) about to open PreparedStatement (open PreparedStatements: 0, globally: 0) 
[2006-08-04 14:18:01,887][log] DEBUG (AbstractBatcher.java:393) select pedido0_.Produto_id as Produto1_5_, pedido0_.pedido_id as pedido2_5_, pedido1_.id as id8_0_, pedido1_.empresa_id as empresa7_8_0_, pedido1_.endereco_id as endereco8_8_0_, pedido1_.pagamento_id as pagamento9_8_0_, pedido1_.usuario_id as usuario10_8_0_, pedido1_.data as data8_0_, pedido1_.totalPedido as totalPed3_8_0_, pedido1_.desconto as desconto8_0_, pedido1_.aplicarDesconto as aplicarD5_8_0_, pedido1_.descontoPercentual as desconto6_8_0_, empresa2_.id as id2_1_, empresa2_.codigo as codigo2_1_, empresa2_.cnpjNum as cnpjNum2_1_, empresa2_.cnpjFil as cnpjFil2_1_, empresa2_.cnpjDig as cnpjDig2_1_, empresa2_.nome as nome2_1_, empresa2_.nomeFantasia as nomeFant7_2_1_, empresa2_.inscricaoEstadual as inscrica8_2_1_, empresa2_.inscricaoMunicipal as inscrica9_2_1_, endereco3_.id as id4_2_, endereco3_.numero as numero4_2_, endereco3_.cep_id as cep4_4_2_, endereco3_.principal as principal4_2_, pagamento4_.id as id6_3_, pagamento4_.descricao as descricao6_3_, pagamento4_.dias as dias6_3_, usuario5_.id as id11_4_, usuario5_.nome as nome11_4_, usuario5_.sobrenome as sobrenome11_4_, usuario5_.email as email11_4_, usuario5_.login as login11_4_, usuario5_.senha as senha11_4_, usuario5_.lembreteSenha as lembrete7_11_4_ from Produto_Pedido pedido0_ left outer join Pedido pedido1_ on pedido0_.pedido_id=pedido1_.id left outer join Empresa empresa2_ on pedido1_.empresa_id=empresa2_.id left outer join Endereco endereco3_ on pedido1_.endereco_id=endereco3_.id left outer join Pagamento pagamento4_ on pedido1_.pagamento_id=pagamento4_.id left outer join Usuario usuario5_ on pedido1_.usuario_id=usuario5_.id where pedido0_.Produto_id in (?, ?) 
[2006-08-04 14:18:01,887][getPreparedStatement] DEBUG (AbstractBatcher.java:476) preparing statement 
[2006-08-04 14:18:01,907][nullSafeSet] DEBUG (NullableType.java:80) binding '2' to parameter: 1 
[2006-08-04 14:18:01,907][nullSafeSet] DEBUG (NullableType.java:80) binding '1' to parameter: 2 
[2006-08-04 14:18:01,907][logClosePreparedStatement] DEBUG (AbstractBatcher.java:366) about to close PreparedStatement (open PreparedStatements: 1, globally: 1) 
[2006-08-04 14:18:01,907][closePreparedStatement] DEBUG (AbstractBatcher.java:525) closing statement 
[2006-08-04 14:18:01,907][logExceptions] DEBUG (JDBCExceptionReporter.java:63) could not initialize a collection batch: [sgv.modell.modelo.Produto.pedido#<2, 1>] [select pedido0_.Produto_id as Produto1_5_, pedido0_.pedido_id as pedido2_5_, pedido1_.id as id8_0_, pedido1_.empresa_id as empresa7_8_0_, pedido1_.endereco_id as endereco8_8_0_, pedido1_.pagamento_id as pagamento9_8_0_, pedido1_.usuario_id as usuario10_8_0_, pedido1_.data as data8_0_, pedido1_.totalPedido as totalPed3_8_0_, pedido1_.desconto as desconto8_0_, pedido1_.aplicarDesconto as aplicarD5_8_0_, pedido1_.descontoPercentual as desconto6_8_0_, empresa2_.id as id2_1_, empresa2_.codigo as codigo2_1_, empresa2_.cnpjNum as cnpjNum2_1_, empresa2_.cnpjFil as cnpjFil2_1_, empresa2_.cnpjDig as cnpjDig2_1_, empresa2_.nome as nome2_1_, empresa2_.nomeFantasia as nomeFant7_2_1_, empresa2_.inscricaoEstadual as inscrica8_2_1_, empresa2_.inscricaoMunicipal as inscrica9_2_1_, endereco3_.id as id4_2_, endereco3_.numero as numero4_2_, endereco3_.cep_id as cep4_4_2_, endereco3_.principal as principal4_2_, pagamento4_.id as id6_3_, pagamento4_.descricao as descricao6_3_, pagamento4_.dias as dias6_3_, usuario5_.id as id11_4_, usuario5_.nome as nome11_4_, usuario5_.sobrenome as sobrenome11_4_, usuario5_.email as email11_4_, usuario5_.login as login11_4_, usuario5_.senha as senha11_4_, usuario5_.lembreteSenha as lembrete7_11_4_ from Produto_Pedido pedido0_ left outer join Pedido pedido1_ on pedido0_.pedido_id=pedido1_.id left outer join Empresa empresa2_ on pedido1_.empresa_id=empresa2_.id left outer join Endereco endereco3_ on pedido1_.endereco_id=endereco3_.id left outer join Pagamento pagamento4_ on pedido1_.pagamento_id=pagamento4_.id left outer join Usuario usuario5_ on pedido1_.usuario_id=usuario5_.id where pedido0_.Produto_id in (?, ?)] 
java.sql.SQLException: Table 'sgv.produto_pedido' doesn't exist
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2928)
	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1571)
	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1666)
	at com.mysql.jdbc.Connection.execSQL(Connection.java:2994)
	at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:936)
	at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1030)
	at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186)
	at org.hibernate.loader.Loader.getResultSet(Loader.java:1669)
	at org.hibernate.loader.Loader.doQuery(Loader.java:662)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
	at org.hibernate.loader.Loader.loadCollectionBatch(Loader.java:1957)
	at org.hibernate.loader.collection.BatchingCollectionInitializer.initialize(BatchingCollectionInitializer.java:47)
	at org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:520)
	at org.hibernate.event.def.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:60)
	at org.hibernate.impl.SessionImpl.initializeCollection(SessionImpl.java:1679)
	at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:344)
	at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:86)
	at org.hibernate.collection.PersistentBag.iterator(PersistentBag.java:246)
	at uk.ltd.getahead.dwr.convert.CollectionConverter.convertOutbound(CollectionConverter.java:161)
	at uk.ltd.getahead.dwr.impl.DefaultConverterManager.convertOutbound(DefaultConverterManager.java:174)
	at uk.ltd.getahead.dwr.convert.BeanConverter.convertOutbound(BeanConverter.java:285)
	at uk.ltd.getahead.dwr.impl.DefaultConverterManager.convertOutbound(DefaultConverterManager.java:174)
	at uk.ltd.getahead.dwr.convert.CollectionConverter.convertOutbound(CollectionConverter.java:180)
	at uk.ltd.getahead.dwr.impl.DefaultConverterManager.convertOutbound(DefaultConverterManager.java:174)
	at uk.ltd.getahead.dwr.impl.ExecuteQuery.execute(ExecuteQuery.java:172)
	at uk.ltd.getahead.dwr.impl.DefaultProcessor.doExec(DefaultProcessor.java:552)
	at uk.ltd.getahead.dwr.impl.DefaultProcessor.handle(DefaultProcessor.java:88)
	at uk.ltd.getahead.dwr.DWRServlet.doPost(DWRServlet.java:178)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	at java.lang.Thread.run(Thread.java:595)
[2006-08-04 14:18:01,907][logExceptions] WARN  (JDBCExceptionReporter.java:71) SQL Error: 1146, SQLState: 42S02 
[2006-08-04 14:18:01,907][logExceptions] ERROR (JDBCExceptionReporter.java:72) Table 'sgv.produto_pedido' doesn't exist 
[2006-08-04 14:18:01,907][warn] WARN  (CommonsLoggingOutput.java:52) Failed to convert pedido 
org.hibernate.exception.SQLGrammarException: could not initialize a collection batch: [sgv.modell.modelo.Produto.pedido#<2, 1>]
	at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
	at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
	at org.hibernate.loader.Loader.loadCollectionBatch(Loader.java:1964)
	at org.hibernate.loader.collection.BatchingCollectionInitializer.initialize(BatchingCollectionInitializer.java:47)
	at org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:520)
	at org.hibernate.event.def.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:60)
	at org.hibernate.impl.SessionImpl.initializeCollection(SessionImpl.java:1679)
	at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:344)
	at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:86)
	at org.hibernate.collection.PersistentBag.iterator(PersistentBag.java:246)
	at uk.ltd.getahead.dwr.convert.CollectionConverter.convertOutbound(CollectionConverter.java:161)
	at uk.ltd.getahead.dwr.impl.DefaultConverterManager.convertOutbound(DefaultConverterManager.java:174)
	at uk.ltd.getahead.dwr.convert.BeanConverter.convertOutbound(BeanConverter.java:285)
	at uk.ltd.getahead.dwr.impl.DefaultConverterManager.convertOutbound(DefaultConverterManager.java:174)
	at uk.ltd.getahead.dwr.convert.CollectionConverter.convertOutbound(CollectionConverter.java:180)
	at uk.ltd.getahead.dwr.impl.DefaultConverterManager.convertOutbound(DefaultConverterManager.java:174)
	at uk.ltd.getahead.dwr.impl.ExecuteQuery.execute(ExecuteQuery.java:172)
	at uk.ltd.getahead.dwr.impl.DefaultProcessor.doExec(DefaultProcessor.java:552)
	at uk.ltd.getahead.dwr.impl.DefaultProcessor.handle(DefaultProcessor.java:88)
	at uk.ltd.getahead.dwr.DWRServlet.doPost(DWRServlet.java:178)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
	at java.lang.Thread.run(Thread.java:595)
Caused by: java.sql.SQLException: Table 'sgv.produto_pedido' doesn't exist
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2928)
	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1571)
	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1666)
	at com.mysql.jdbc.Connection.execSQL(Connection.java:2994)
	at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:936)
	at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1030)
	at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186)
	at org.hibernate.loader.Loader.getResultSet(Loader.java:1669)
	at org.hibernate.loader.Loader.doQuery(Loader.java:662)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
	at org.hibernate.loader.Loader.loadCollectionBatch(Loader.java:1957)
	... 33 more
[2006-08-04 14:18:02,027][debug] DEBUG (CommonsLoggingOutput.java:28) Returning: id[9750_1154711881596] init[var s0 = new Array();var s1 = new Object();var s2 = false;s1.aplicarDesconto = s2;var s3 = "4537";s1.codigo = s3;var s4 = 10.0;s1.desconto = s4;s1.descontoPercentual = s2;var s5 = "Cartucho colorido HP427";s1.descricao = s5;var s6 = 1;s1.id = s6;var s8 = 45.0;s1.preco = s8;s0[0] = s1;var s9 = new Object();s9.aplicarDesconto = s2;var s10 = "4218";s9.codigo = s10;var s11 = 5.0;s9.desconto = s11;s9.descontoPercentual = s2;var s12 = "Cartucho preto HP421";s9.descricao = s12;var s13 = 2;s9.id = s13;var s15 = 32.0;s9.preco = s15;s0[1] = s9;] assign[s0] xhr[true] 
[2006-08-04 14:18:02,157][debug] DEBUG (CommonsLoggingOutput.java:28) var s0 = new Array();var s1 = new Object();var s2 = false;s1.aplicarDesconto = s2;var s3 = "4537";s1.codigo = s3;var s4 = 10.0;s1.desconto = s4;s1.descontoPercentual = s2;var s5 = "Cartucho colorido HP427";s1.descricao = s5;var s6 = 1;s1.id = s6;var s8 = 45.0;s1.preco = s8;s0[0] = s1;var s9 = new Object();s9.aplicarDesconto = s2;var s10 = "4218";s9.codigo = s10;var s11 = 5.0;s9.desconto = s11;s9.descontoPercentual = s2;var s12 = "Cartucho preto HP421";s9.descricao = s12;var s13 = 2;s9.id = s13;var s15 = 32.0;s9.preco = s15;s0[1] = s9;
DWREngine._handleResponse('9750_1154711881596', s0);

O erro acima está acontecendo entre os passos 3 e 4.

Eu suspeito da seguinte situação.

O objeto trafegado nesta requisição é o <Produto>

/**
 * Project Name	: Sistema de Gestão de Vendas
 * Class Name	: Produto.java
 * Created by 	: Márcio Alves Barroso | [email removido]
 * Created on	: 17/03/2006 | 16:08:32
 */
package sgv.modell.modelo;

import java.util.Collection;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToMany;

import sgv.modell.modelo.util.BaseProduto;

/**
 * @author Márcio Alves Barroso
 */
@Entity
public class Produto extends BaseProduto {
	
    private static final long serialVersionUID = 1L;
    
    @Id @GeneratedValue
    private Long id;
    
    @Column(nullable = false)
    private String codigo;
    
    @Column(nullable = false)
    private String descricao;
    
    @Column(nullable = false)
    private Double preco;
    
    @ManyToMany
    @Column(nullable = true)
    private Collection&lt;Pedido&gt; pedido;

    @Column(nullable = true)
    private Double desconto;
    
    @Column(nullable = true)
    private Boolean aplicarDesconto;

    @Column(nullable = true)
    private Boolean descontoPercentual;
    
    public Boolean getAplicarDesconto() {
        return aplicarDesconto;
    }

    public void setAplicarDesconto(Boolean aplicarDesconto) {
        this.aplicarDesconto = aplicarDesconto;
    }

    public Boolean getDescontoPercentual() {
        return descontoPercentual;
    }

    public void setDescontoPercentual(Boolean descontoPercentual) {
        this.descontoPercentual = descontoPercentual;
    }

    public Double getDesconto() {
        return desconto;
    }

    public void setDesconto(Double desconto) {
        this.desconto = desconto;
    }

    public String getDescricao() {
        return descricao;
    }

    public void setDescricao(String descricao) {
        this.descricao = descricao;
    }

    public Collection&lt;Pedido&gt; getPedido() {
        return pedido;
    }

    public void setPedido(Collection&lt;Pedido&gt; pedido) {
        this.pedido = pedido;
    }

    public Double getPreco() {
        return preco;
    }

    public void setPreco(Double preco) {
        this.preco = preco;
    }

    public String getCodigo() {
        return codigo;
    }

    public void setCodigo(String codigo) {
        this.codigo = codigo;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }
}

Este objeto possui um atributo Collection<Pedido> que é necessário para ter o relacionamento ManyToMany.

Eu estou imaginando que no Jsp, qdo eu recebo o objeto e pego os seus atributos, o Hibernate está tentando carregar os Pedidos desta coleção com a conexão já fechada.

O que vcs acham ?

Abraços,

3 Respostas

louds

Você leu o erro?

marciobarroso

Hehe

Claro que eu lí … a questão é que não entendo pq está sendo referenciada a tabela sgv.produto_pedido …

Verifiquei em meus mapeamentos e esta referência não existe.

Foi por isso que eu postei …

Obrigado,

marciobarroso

Resolvido …

Descobri em meus mapeamentos que uma referência many to many estava incompleta …

public class Pagamento {

    ...    

    @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
    @JoinTable( name = "empresapagamento",
            uniqueConstraints = @UniqueConstraint( columnNames = {"empresa", "pagamento" } ),
            joinColumns = @JoinColumn(name = "pagamento", referencedColumnName = "id"),
            inverseJoinColumns = @JoinColumn(name = "empresa", referencedColumnName = "id")
    )
    private Collection&lt;Empresa&gt; empresas;

    ...

}

public class Empresa {

    ...

    @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
    @JoinTable( name = "empresapagamento",
            uniqueConstraints = @UniqueConstraint( columnNames = {"empresa", "pagamento" } ),
            joinColumns = @JoinColumn(name = "empresa", referencedColumnName = "id"),
            inverseJoinColumns = @JoinColumn(name = "pagamento", referencedColumnName = "id")
    )
    private Collection&lt;Pagamento&gt; pagamentos;

    ...

}

na minha classe Pagamento estava faltando :

@JoinTable( name = "empresapagamento",
            uniqueConstraints = @UniqueConstraint( columnNames = {"empresa", "pagamento" } ),
            joinColumns = @JoinColumn(name = "pagamento", referencedColumnName = "id"),
            inverseJoinColumns = @JoinColumn(name = "empresa", referencedColumnName = "id")
    )

Lição aprendida :

Sempre que efetuar um mapeamento ManyToMany, o joinTable deve ser feito nos 2 objetos. hehe

Valew

Criado 4 de agosto de 2006
Ultima resposta 4 de ago. de 2006
Respostas 3
Participantes 2