Hibernate + SQLServer

7 respostas
louds

Tou ficando maluco já. Impossivel fazer esses dois funcionarem juntos!!

A aplicação funciona perfeita com mysql porêm quando troco o banco pro sqlserver o negocio vai pro vinagre.

Versão do Hibernate: 2.0.3
Driver JDBC: última verão do driver da MS (tentei também com jtds e JSQLConnect)
SelectMethod: direct ou cursor (com direct reclama que precisa de cursor, com cursor não mostra o erro)
Erro:

at net.sf.hibernate.impl.SessionFactoryImpl.getPersister(SessionFactoryImpl.java:420)
	at net.sf.hibernate.impl.SessionImpl.getPersister(SessionImpl.java:2302)
	at net.sf.hibernate.impl.SessionImpl.getPersister(SessionImpl.java:2309)
	at net.sf.hibernate.impl.SessionImpl.getEntityIdentifierIfNotUnsaved(SessionImpl.java:2374)
	at net.sf.hibernate.type.EntityType.getIdentifier(EntityType.java:56)
	at net.sf.hibernate.type.EntityType.isDirty(EntityType.java:124)
	at net.sf.hibernate.type.TypeFactory.findDirty(TypeFactory.java:210)
	at net.sf.hibernate.persister.AbstractEntityPersister.findDirty(AbstractEntityPersister.java:209)
	at net.sf.hibernate.impl.SessionImpl.flushEntities(SessionImpl.java:2182)
	at net.sf.hibernate.impl.SessionImpl.flushEverything(SessionImpl.java:2017)
	at net.sf.hibernate.impl.SessionImpl.flush(SessionImpl.java:2004)
....

Alguem já teve esse problema? Uma luz? Um ‘se deu mau, já era’?

7 Respostas

cv1

Ueh, cade o comeco do stack trace? :stuck_out_tongue:

louds

Duh, realmente esqueci.
É basicamente:
“could not find an apropriate persister: java.lang.Integer”

Porêm segundo um post do gavin essa exception pode ocorrer em varios lugares devido a um erro diferente.

urubatan

o dialect esta correto?? qual a versão do hibernate?? to usando a 2.alguma coisa aqui sem problema nenhum

louds

Tou usando o dialect do Sybase como a documentação manda.
Os comandos SQL funcionam 100%, o problema acontece no flush.

urubatan

o schema foi gerado pelo proprio hibernate?? (nos casos em que utilizei foi)
caso contrario, pode ser algum conflito entre um campo de um objeto na tabela e o real (tipo de dados errado ou coisa assim)

tente verificar se isto ocorre com todos os objetos ou só com um que esta dentro desta transação que esta sendo testada.

louds

Eu verifiquei o schema dos dois bancos umas 5x, tão identicos.
O curioso desse caso é que o flush da pau em uma transação onde não ocorrem modificações.

rodrigousp

Você consegue gerar as tabelas ?
Tem como você fazer a engenharia reversa usando middlegen ?
Talvez algum pk esteja errado, ou algum campo que vc tenha algum mapeamento que nao esteja funcionando muito bem com este bd. Se vc usar o middlegen vai ter o mapeamento exato para as tabelas existentes.

Criado 20 de outubro de 2003
Ultima resposta 21 de out. de 2003
Respostas 7
Participantes 4