Hibernate com SQL Server

Galera, to com problemas aqui me ajudem por favor !!!

Consigo fazer load e delete com hibernate e tal… meu problema tá para inserir um kra novo…

No Banco em SQL Server, tenho uma tabela de usuários e nela, tem a PK USER_ID que tá como IDENTITY (not for replication) desta maneira eu incremento de 1 em 1 qndo insiro na mão, antes tava NO nesta opcao, ou seja, nem na mao eu conseguia, eu tinha q setar na mao um ID novo… q é ridiculo neste caso…

Bom, no hbm.xml correspondente para esta tabela eu uso a tag
generator-class= INCREMENT e o tipo do dado é um long… só q no banco tá como NUMERIC nao sei se é isto tbm q tá me dando erro…
como no banco ta como Identity(no for replication) eu setei no hbm.xml o generator para IDENTITY tambem… mas nao funfa…

Olha o erro aí… HELPPPPPPPP como configurar no banco e o tipo no hibernate

Erro com IDENTITY no HBM

aused by: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]String or binary data would be truncated

Erro com INCREMENT no HBM

[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]Cannot insert explicit value for identity column in table ‘USUARIO’ when IDENTITY_INSERT is set to OFF.
ERROR [03 Abr 2005 23:33:42] (JDBCException.<init>():38)
could not insert: [br.com.projeto.sgoe.bean.Usuario#2]
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]Cannot insert explicit value for identity column in table ‘USUARIO’ when IDENTITY_INSERT is set to OFF.

Ambos com tipo long no meu USER_ID e no banco ela é PK do tipo NUMERIC

Basta fazer assim:

&lt;id column="ID" name="id" type="java.lang.Long"&gt;
	&lt;generator class="identity" /&gt;
&lt;/id&gt;

Não deu muito certo

deixei o identity para NO la no BD e identity no hbm mas ele diz q nao pode inserir NULL no campo id…

ae tentei deixei como yes no BD e ele diz que String ou Binary would be truncated… afff nao sei oq pode ser

esta é a query q ele monta no session.saveOrUpdate

Hibernate: insert into USUARIO (USER_LOGIN, USER_NAME, USER_PASS, USER_PASS_CONF, USER_STREET_NAME, USER_STREET_COMPL, USER_BAIRRO, USER_CITY, USER_STATE, USER_CEP, USER_HOME_PHONE, USER_CEL_PHONE, USER_RECADOS, USER_EMAIL, USER_CPF, USER_RG, USER_LEVEL_ACCESS, USER_STREET_NUMBER, USER_DT_NASC, USER_DT_ADMISS, USER_DT_DISMISS, USER_HORAS) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) select scope_identity()

olha a exception inteira…

tem no final q a session nao pode ser sincronizada com o state do banco

Hibernate: insert into USUARIO (USER_LOGIN, USER_NAME, USER_PASS, USER_PASS_CONF, USER_STREET_NAME, USER_STREET_COMPL, USER_BAIRRO, USER_CITY, USER_STATE, USER_CEP, USER_HOME_PHONE, USER_CEL_PHONE, USER_RECADOS, USER_EMAIL, USER_CPF, USER_RG, USER_LEVEL_ACCESS, USER_STREET_NUMBER, USER_DT_NASC, USER_DT_ADMISS, USER_DT_DISMISS, USER_HORAS, USER_ID) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
ERROR [04 Abr 2005 23:14:51] (JDBCExceptionReporter.logExceptions():46)
[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]String or binary data would be truncated.
ERROR [04 Abr 2005 23:14:52] (JDBCExceptionReporter.logExceptions():46)
[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]The statement has been terminated.
ERROR [04 Abr 2005 23:14:52] (JDBCException.<init>():38)
could not insert: [br.com.projeto.sgoe.bean.Usuario#2]
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]String or binary data would be truncated.
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRPCRequest.processReplyToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source)
at com.microsoft.jdbc.sqlserver.SQLServerImplStatement.getNextResultType(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.commonTransitionToState(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.postImplExecute(Unknown Source)
at com.microsoft.jdbc.base.BasePreparedStatement.postImplExecute(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.executeUpdateInternal(Unknown Source)
at com.microsoft.jdbc.base.BasePreparedStatement.executeUpdate(Unknown Source)
at net.sf.hibernate.impl.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:22)
at net.sf.hibernate.persister.EntityPersister.insert(EntityPersister.java:468)
at net.sf.hibernate.persister.EntityPersister.insert(EntityPersister.java:442)
at net.sf.hibernate.impl.ScheduledInsertion.execute(ScheduledInsertion.java:29)
at net.sf.hibernate.impl.SessionImpl.executeAll(SessionImpl.java:2418)
at net.sf.hibernate.impl.SessionImpl.execute(SessionImpl.java:2371)
at net.sf.hibernate.impl.SessionImpl.flush(SessionImpl.java:2240)
at br.com.projeto.sgoe.action.FuncionarioAction.save(FuncionarioAction.java:229)
at br.com.projeto.sgoe.action.FuncionarioAction.execute(FuncionarioAction.java:52)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
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:237)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
at java.lang.Thread.run(Thread.java:534)
ERROR [04 Abr 2005 23:14:52] (SessionImpl.execute():2379)
Could not synchronize database state with session
net.sf.hibernate.JDBCException: could not insert: [br.com.projeto.sgoe.bean.Usuario#2]

olha o meu hbm com increment e identity = yes no BD

NAO SEI OQ FACO, agora diz q nao posso inserir valor explicito no campo ID e etc…

Hibernate: insert into USUARIO (USER_LOGIN, USER_NAME, USER_PASS, USER_PASS_CONF, USER_STREET_NAME, USER_STREET_COMPL, USER_BAIRRO, USER_CITY, USER_STATE, USER_CEP, USER_HOME_PHONE, USER_CEL_PHONE, USER_RECADOS, USER_EMAIL, USER_CPF, USER_RG, USER_LEVEL_ACCESS, USER_STREET_NUMBER, USER_DT_NASC, USER_DT_ADMISS, USER_DT_DISMISS, USER_HORAS, USER_ID) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
ERROR [04 Abr 2005 23:41:33] (JDBCExceptionReporter.logExceptions():46)
[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]Cannot insert explicit value for identity column in table ‘USUARIO’ when IDENTITY_INSERT is set to OFF.
ERROR [04 Abr 2005 23:41:33] (JDBCException.<init>():38)
could not insert: [br.com.projeto.sgoe.bean.Usuario#3]
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]Cannot insert explicit value for identity column in table ‘USUARIO’ when IDENTITY_INSERT is set to OFF.
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)

http://sqlunit.sourceforge.net/c3194.html

LongType: BIGINT <=> java.lang.Long

“would be truncated” : concerteza, long não tem a menor condição de suportar um numeric (10^38).