Bom galera vou colocar os trechos de codigos aqui se alguem puder me ajudar…
Primeiro a classe Produto
/*
* Produtos.java
*
* Created on July 24, 2007, 11:35 PM
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package beans;
import java.util.List;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
/**
*
* @author Administrador
*/
@Entity
@Table(name="TBPRODUTOS")
@NamedQueries({
@NamedQuery(name="PROD", query="SELECT p FROM Produtos p")
})
public class Produtos implements java.io.Serializable {
@OneToMany(mappedBy = "produto")
private List<Estoque> estoques;
@Id
private int procodigo;
private String proCodbarra;
private String proDesc;
//Getters e Setters
}
Classe Estoque
/*
* Estoque.java
*
* Created on July 24, 2007, 11:38 PM
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package beans;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
/**
*
* @author Administrador
*/
@Entity
@Table(name="TBESTOQUE")
public class Estoque implements java.io.Serializable {
@Id
@Column(name="procodigo")
@ManyToOne
@JoinColumn(name="procodigo", referencedColumnName="procodigo")
private Produtos produto;
private Integer estVenda;
//getters e setters
}
Classe de teste
import beans.Produtos;
import hibernate.util.HibernateUtil;
import java.util.List;
import org.hibernate.Query;
/*
* Teste.java
*
* Created on July 24, 2007, 4:07 PM
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
/**
*
* @author Administrador
*/
public class Teste {
/** Creates a new instance of Teste */
public Teste() {
Query q = HibernateUtil.getSession().getNamedQuery("PROD");
List<Produtos> results = q.list();
for (int i = 0; i < results.size(); i++) {
System.out.println("Produto: "+results.get(i).getProDesc()+" "+
results.get(i).getEstoques().get(0));
}
System.out.println(results.size());
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
new Teste();
}
}
E o erro que ele da é o seguinte
2007-07-25 15:57:06,984 DEBUG hibernate.engine.TwoPhaseLoad -> done materializing entity [beans.Produtos#27859]
2007-07-25 15:57:06,984 DEBUG hibernate.engine.TwoPhaseLoad -> resolving associations for [beans.Produtos#27860]
2007-07-25 15:57:06,984 DEBUG hibernate.engine.TwoPhaseLoad -> done materializing entity [beans.Produtos#27860]
2007-07-25 15:57:06,984 DEBUG hibernate.engine.TwoPhaseLoad -> resolving associations for [beans.Produtos#27861]
2007-07-25 15:57:06,984 DEBUG hibernate.engine.TwoPhaseLoad -> done materializing entity [beans.Produtos#27861]
2007-07-25 15:57:06,984 DEBUG hibernate.engine.TwoPhaseLoad -> resolving associations for [beans.Produtos#27862]
2007-07-25 15:57:06,984 DEBUG hibernate.engine.TwoPhaseLoad -> done materializing entity [beans.Produtos#27862]
2007-07-25 15:57:06,984 DEBUG hibernate.engine.TwoPhaseLoad -> resolving associations for [beans.Produtos#27863]
2007-07-25 15:57:06,984 DEBUG hibernate.engine.TwoPhaseLoad -> done materializing entity [beans.Produtos#27863]
2007-07-25 15:57:06,984 DEBUG hibernate.engine.TwoPhaseLoad -> resolving associations for [beans.Produtos#27864]
2007-07-25 15:57:06,984 DEBUG hibernate.engine.TwoPhaseLoad -> done materializing entity [beans.Produtos#27864]
2007-07-25 15:57:06,984 DEBUG hibernate.engine.TwoPhaseLoad -> resolving associations for [beans.Produtos#27865]
2007-07-25 15:57:06,984 DEBUG hibernate.engine.TwoPhaseLoad -> done materializing entity [beans.Produtos#27865]
2007-07-25 15:57:06,984 DEBUG hibernate.engine.TwoPhaseLoad -> resolving associations for [beans.Produtos#27866]
2007-07-25 15:57:06,984 DEBUG hibernate.engine.TwoPhaseLoad -> done materializing entity [beans.Produtos#27866]
2007-07-25 15:57:06,984 DEBUG hibernate.engine.TwoPhaseLoad -> resolving associations for [beans.Produtos#27867]
2007-07-25 15:57:06,984 DEBUG hibernate.engine.TwoPhaseLoad -> done materializing entity [beans.Produtos#27867]
2007-07-25 15:57:06,984 DEBUG hibernate.engine.TwoPhaseLoad -> resolving associations for [beans.Produtos#27868]
2007-07-25 15:57:06,984 DEBUG hibernate.engine.TwoPhaseLoad -> done materializing entity [beans.Produtos#27868]
2007-07-25 15:57:06,984 DEBUG hibernate.engine.StatefulPersistenceContext -> initializing non-lazy collections
2007-07-25 15:57:06,984 DEBUG hibernate.jdbc.ConnectionManager -> aggressively releasing JDBC connection
2007-07-25 15:57:06,984 DEBUG hibernate.jdbc.ConnectionManager -> releasing JDBC connection [ (open PreparedStatements: 0, globally: 0) (open ResultSets: 0, globally: 0)]
2007-07-25 15:57:07,000 DEBUG hibernate.loader.Loader -> loading collection: [beans.Produtos.estoques#1]
2007-07-25 15:57:07,000 DEBUG hibernate.jdbc.AbstractBatcher -> about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
2007-07-25 15:57:07,000 DEBUG hibernate.jdbc.ConnectionManager -> opening JDBC connection
2007-07-25 15:57:07,000 DEBUG org.hibernate.SQL -> select estoques0_.procodigo as procodigo1_, estoques0_.procodigo as procodigo1_0_, estoques0_.estVenda as estVenda1_0_ from TBESTOQUE estoques0_ where estoques0_.procodigo=?
Hibernate: select estoques0_.procodigo as procodigo1_, estoques0_.procodigo as procodigo1_0_, estoques0_.estVenda as estVenda1_0_ from TBESTOQUE estoques0_ where estoques0_.procodigo=?
2007-07-25 15:57:07,000 DEBUG hibernate.jdbc.AbstractBatcher -> about to open ResultSet (open ResultSets: 0, globally: 0)
2007-07-25 15:57:07,000 DEBUG hibernate.loader.Loader -> result set contains (possibly empty) collection: [beans.Produtos.estoques#1]
2007-07-25 15:57:07,062 INFO hibernate.type.SerializableType -> could not read column value from result set: procodigo1_0_; Error converting to array of bytes.
2007-07-25 15:57:07,062 DEBUG hibernate.jdbc.AbstractBatcher -> about to close ResultSet (open ResultSets: 1, globally: 1)
2007-07-25 15:57:07,062 DEBUG hibernate.jdbc.AbstractBatcher -> about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
2007-07-25 15:57:07,062 DEBUG hibernate.util.JDBCExceptionReporter -> could not initialize a collection: [beans.Produtos.estoques#1] [select estoques0_.procodigo as procodigo1_, estoques0_.procodigo as procodigo1_0_, estoques0_.estVenda as estVenda1_0_ from TBESTOQUE estoques0_ where estoques0_.procodigo=?]
org.firebirdsql.jdbc.field.TypeConvertionException: Error converting to array of bytes.
at org.firebirdsql.jdbc.field.FBField.getBytes(FBField.java:612)
Exception in thread “main” org.hibernate.exception.SQLGrammarException: could not initialize a collection: [beans.Produtos.estoques#1]
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
at org.firebirdsql.jdbc.FBResultSet.getBytes(FBResultSet.java:808)
at org.hibernate.type.AbstractBynaryType.get(AbstractBynaryType.java:78)
at org.hibernate.type.SerializableType.get(SerializableType.java:33)
at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:163)
at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:154)
at org.hibernate.loader.Loader.getKeyFromResultSet(Loader.java:1097)
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:565)
at org.hibernate.loader.Loader.doQuery(Loader.java:701)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
at org.hibernate.loader.Loader.loadCollection(Loader.java:1994)
at org.hibernate.loader.collection.CollectionLoader.initialize(CollectionLoader.java:36)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.loader.Loader.loadCollection(Loader.java:2001)
at org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:565)
at org.hibernate.loader.collection.CollectionLoader.initialize(CollectionLoader.java:36)
at org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:565)
at org.hibernate.event.def.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:60)
at org.hibernate.impl.SessionImpl.initializeCollection(SessionImpl.java:1716)
at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:344)
at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:86)
at org.hibernate.event.def.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:60)
at org.hibernate.impl.SessionImpl.initializeCollection(SessionImpl.java:1716)
at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:344)
at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:86)
at org.hibernate.collection.PersistentBag.toString(PersistentBag.java:483)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:115)
at Teste.(Teste.java:27)
at Teste.main(Teste.java:38)
2007-07-25 15:57:07,062 WARN hibernate.util.JDBCExceptionReporter -> SQL Error: 0, SQLState: 07006
2007-07-25 15:57:07,062 ERROR hibernate.util.JDBCExceptionReporter -> Error converting to array of bytes.
at org.hibernate.collection.PersistentBag.toString(PersistentBag.java:483)
at java.lang.String.valueOf(String.java:2827)
at java.lang.StringBuilder.append(StringBuilder.java:115)
at Teste.(Teste.java:27)
at Teste.main(Teste.java:38)
Caused by: org.firebirdsql.jdbc.field.TypeConvertionException: Error converting to array of bytes.
at org.firebirdsql.jdbc.field.FBField.getBytes(FBField.java:612)
at org.firebirdsql.jdbc.FBResultSet.getBytes(FBResultSet.java:808)
at org.hibernate.type.AbstractBynaryType.get(AbstractBynaryType.java:78)
at org.hibernate.type.SerializableType.get(SerializableType.java:33)
at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:163)
at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:154)
at org.hibernate.loader.Loader.getKeyFromResultSet(Loader.java:1097)
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:565)
at org.hibernate.loader.Loader.doQuery(Loader.java:701)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
at org.hibernate.loader.Loader.loadCollection(Loader.java:1994)
… 11 more
Java Result: 1
Coloquei uma parte antes de começar a dar o erro.
Se no For eu tirar a chamado results.get(i).getEstoques().get(0) ele funciona direito