Trabalhando com Hibernate

2 respostas
Thiago_Ananias

Eae pessoal, estou mexendo pela primeira vez com o Hibernate e tow apanhando um pouco pra fazer funfar olhem:

o meu BEAN
public class Pessoa {

	int		id;
	String	nome;
	int		idade;

	public int getId() {
		return id;
	}

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

	public int getIdade() {
		return idade;
	}

	public void setIdade(int idade) {
		this.idade = idade;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

}
O meu mapeamento
&lt?xml version="1.0"?&gt
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="Pessoa">
  <class name="Model.Pessoa" table="tb_pessoa">
 	<id name="id" column="id_pessoa">
  		<generator class="identity"/>
	</id>
	<property name="nome"	column="vc_nome"	type="string"/>
	<property name="idade"	column="it_idade"	type="int"/>
  </class>
</hibernate-mapping>
E o minha classe de teste
public class Teste {

	public static void main(String args[]) {

		SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
		
		Session session = sessionFactory.openSession();

        session.beginTransaction();

        Pessoa pessoa = new Pessoa();
        pessoa.setIdade(20);
        pessoa.setNome("Thiago");

        session.save(pessoa);

        session.getTransaction().commit();

	}

}

Estou utilizando SQL Server 2000, a minha tabela tem a seguinte estrutura
id_pessoa - int - identity
vc_nome - varchar
it_idade - int

e esta dando o seguinte erro:

Exception in thread "main" org.hibernate.exception.SQLGrammarException: could not insert: [Model.Pessoa]
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:40)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2154)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2634)
at org.hibernate.action.EntityIdentityInsertAction.execute(EntityIdentityInsertAction.java:48)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:248)
at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:298)
at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:181)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:107)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:187)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:172)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:535)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:523)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:519)
at Aplication.Teste.main(Teste.java:22)
Caused by: java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'vc_nome'.
at sun.jdbc.odbc.JdbcOdbc.createSQLException(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.standardError(Unknown Source)
at sun.jdbc.odbc.JdbcOdbc.SQLExecute(Unknown Source)
at sun.jdbc.odbc.JdbcOdbcPreparedStatement.execute(Unknown Source)
at org.hibernate.id.IdentityGenerator$InsertSelectDelegate.executeAndExtract(IdentityGenerator.java:108)
at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:33)
... 16 more

Oq pode ser? vlw!

2 Respostas

andre_guitar7

Olá,

Dá uma olhada melhor no trace, tem uma linha assim:

Caused by: java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name ‘vc_nome’.
Ele tá dizendo que a coluna ‘vc_nome’ é inválida. Essa coluna existe na tua tabela?

Thiago_Ananias

Pow cara que vacilada :oops: hehehe…mas tah valendo pq agora vou prestar mais atencao ao TRACE!!! :wink:

Obrigado!

Criado 9 de fevereiro de 2007
Ultima resposta 9 de fev. de 2007
Respostas 2
Participantes 2