galera estou tendo um problema aqui com minha persistencia, ja dei uma olhada na net e não vi nenhuma solução, vou postar aqui helpp…
stack trace
Hibernate:
select
this_.Conta_Corrente as Conta1_240_0_,
this_.Sequencia as Sequencia240_0_,
this_.Tipo_Doc as Tipo3_240_0_,
this_.Historico as Historico240_0_,
this_.CodCCTransferida as CodCCTra5_240_0_,
this_.Data as Data240_0_,
this_.Complemento as Compleme7_240_0_,
this_.Nr_Cheque as Nr8_240_0_,
this_.Dt_Pgto as Dt9_240_0_,
this_.Debito_Credito as Debito10_240_0_,
this_.Valor as Valor240_0_,
this_.Observacao as Observacao240_0_,
this_.Nominal_A as Nominal13_240_0_,
this_.Nr_Documento as Nr14_240_0_,
this_.Cancelado as Cancelado240_0_,
this_.Pzo_Comp as Pzo16_240_0_,
this_.Conta_Contabil as Conta17_240_0_,
this_.DtConciliacao as DtConci18_240_0_
from
BIOS_Informatica.dbo.movimento_conta_corrente this_
Exception in thread "main" org.hibernate.exception.GenericJDBCException: could not execute query
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.loader.Loader.doList(Loader.java:2148)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2029)
at org.hibernate.loader.Loader.list(Loader.java:2024)
at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:94)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1533)
at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283)
at com.bios.persistencia.Teste.main(Teste.java:27)
Caused by: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]ResultSet can not re-read row data for column 1.
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.base.BaseResultSet.validateColumnIndex(Unknown Source)
at com.microsoft.jdbc.base.BaseResultSet.getInt(Unknown Source)
at com.microsoft.jdbc.base.BaseResultSet.getInt(Unknown Source)
at org.hibernate.type.IntegerType.get(IntegerType.java:28)
at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:113)
at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:102)
at org.hibernate.type.ManyToOneType.hydrate(ManyToOneType.java:95)
at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:1899)
at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1372)
at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1300)
at org.hibernate.loader.Loader.getRow(Loader.java:1197)
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:569)
at org.hibernate.loader.Loader.doQuery(Loader.java:689)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
at org.hibernate.loader.Loader.doList(Loader.java:2145)
... 6 more
eu não entendi muito bem…sei q o problema esta no meu result set, mais não sei exatamante onde…
entidadeID, pois é chave composta
public class MovimentoContaCorrenteId implements java.io.Serializable {
// Fieldz
/**
*
*/
private static final long serialVersionUID = 1L;
private Integer sequencia;
private Integer contaCorrente;
// Constructors
/** default constructor */
public MovimentoContaCorrenteId() {
}
/** full constructor */
public MovimentoContaCorrenteId(Integer sequencia, Integer contaCorrente) {
this.sequencia = sequencia;
this.contaCorrente = contaCorrente;
}
// Property accessors
public Integer getSequencia() {
return this.sequencia;
}
public void setSequencia(Integer sequencia) {
this.sequencia = sequencia;
}
public Integer getContaCorrente() {
return this.contaCorrente;
}
public void setContaCorrente(Integer contaCorrente) {
this.contaCorrente = contaCorrente;
}
public boolean equals(Object other) {
/*
if ((this == other))
return true;
if ((other == null))
return false;
if (!(other instanceof MovimentoContaCorrenteId))
return false;
MovimentoContaCorrenteId castOther = (MovimentoContaCorrenteId) other;
return ((this.getContaCorrente() == castOther.getContaCorrente()) || (this
.getContaCorrente() != null
&& castOther.getContaCorrente() != null && this
.getContaCorrente().equals(castOther.getContaCorrente())))
&& ((this.getSequencia() == castOther.getSequencia()) || (this
.getSequencia() != null
&& castOther.getSequencia() != null && this
.getSequencia().equals(castOther.getSequencia())));
*/
return true;
}
public int hashCode() {
/*
int result = 17;
result = 37
* result
+ (getContaCorrente() == null ? 0 : this.getContaCorrente()
.hashCode());
result = 37 * result
+ (getSequencia() == null ? 0 : this.getSequencia().hashCode());
return result;
*/
return this.getContaCorrente().hashCode();
}
}
Mapeamento
<hibernate-mapping>
<class name="com.bios.MovimentoContaCorrente" table="movimento_conta_corrente" schema="dbo" catalog="BIOS_Informatica">
<composite-id name="id" class="com.bios.MovimentoContaCorrenteId">
<key-property name="contaCorrente" type="java.lang.Integer">
<column name="Conta_Corrente" />
</key-property>
<key-property name="sequencia" type="java.lang.Integer">
<column name="Sequencia" />
</key-property>
</composite-id>
<many-to-one name="tipoDcto" class="com.bios.TipoDcto" fetch="select">
<column name="Tipo_Doc" />
</many-to-one>
<many-to-one name="historico" class="com.bios.Historico" fetch="select">
<column name="Historico" />
</many-to-one>
<many-to-one name="contaCorrenteFinByCodCctransferida" class="com.bios.ContaCorrenteFin" fetch="select">
<column name="CodCCTransferida" />
</many-to-one>
<many-to-one name="contaCorrenteFinByContaCorrente" class="com.bios.ContaCorrenteFin" update="false" insert="false" fetch="select">
<column name="Conta_Corrente" not-null="true" />
</many-to-one>
<property name="data" type="java.util.Date">
<column name="Data" length="16" not-null="true" />
</property>
<property name="complemento" type="java.lang.String">
<column name="Complemento" length="40" />
</property>
<property name="nrCheque" type="java.lang.Integer">
<column name="Nr_Cheque" />
</property>
<property name="dtPgto" type="java.util.Date">
<column name="Dt_Pgto" length="16" />
</property>
<property name="debitoCredito" type="java.lang.String">
<column name="Debito_Credito" length="1" />
</property>
<property name="valor" type="java.lang.Double">
<column name="Valor" precision="12" />
</property>
<property name="observacao" type="java.lang.String">
<column name="Observacao" />
</property>
<property name="nominalA" type="java.lang.String">
<column name="Nominal_A" length="40" />
</property>
<property name="nrDocumento" type="java.lang.String">
<column name="Nr_Documento" length="20" />
</property>
<property name="cancelado" type="java.lang.String">
<column name="Cancelado" length="1" />
</property>
<property name="pzoComp" type="java.lang.Integer">
<column name="Pzo_Comp" />
</property>
<property name="contaContabil" type="java.lang.String">
<column name="Conta_Contabil" length="20" />
</property>
<property name="dtConciliacao" type="java.util.Date">
<column name="DtConciliacao" length="16" />
</property>
<set name="divValors" inverse="true">
<key>
<column name="Conta_Corrente" not-null="true" />
<column name="Movimento" not-null="true" />
</key>
<one-to-many class="com.bios.DivValor" />
</set>
<set name="vencimentoCps" inverse="true">
<key>
<column name="CodCC" />
<column name="SeqCC" />
</key>
<one-to-many class="com.bios.VencimentoCp" />
</set>
<set name="vencimentoCrs" inverse="true">
<key>
<column name="CodCC" />
<column name="SeqCC" />
</key>
<one-to-many class="com.bios.VencimentoCr" />
</set>
</class>
</hibernate-mapping>
e um mainzinho de teste…
public static void main(String[] args) {
SessionFactory factpry = new Configuration().configure().buildSessionFactory();
Session session = factpry.openSession();
//MovimentoContaCorrenteId id = new MovimentoContaCorrenteId(1,1);
//MovimentoContaCorrente mov = (MovimentoContaCorrente) session.load(MovimentoContaCorrente.class, id);
Criteria select = session.createCriteria(MovimentoContaCorrente.class);
List<MovimentoContaCorrente> list = select.list();
//System.out.println(":: "+mov.getComplemento());
for(MovimentoContaCorrente movimento : list){
System.out.println(":: "+movimento.getComplemento());
}
help galera, vlewwwwww !!!