Jdbc error

5 respostas
rodrigousp

Oi guj,

Estou usando hibernate + jboss para minha camada de persitência. Quando eu fazia os testes com o hypersonicSql funcionava numa boa. Daí, eu fui utilizar o banco de dados para produção chamado Progress e obtive o seguinte erro na momento de salvar um objeto pojo.

<blockquote>

15:26:09,085 WARN  [JDBCExceptionReporter] SQL Error: 0, SQLState: 22001

15:26:09,085 ERROR [JDBCExceptionReporter] [JDBC Progress Driver]:String data, right truncated.  Error in parameter 18.

15:26:09,100 ERROR [JDBCExceptionReporter] Could not synchronize database state with session

java.sql.SQLException: [JDBC Progress Driver]:String data, right truncated.  Error in parameter 18.

at com.progress.sql.jdbc.JdbcProgress.createSQLException(JdbcProgress.java:6562)

at com.progress.sql.jdbc.JdbcProgress.standardError(JdbcProgress.java:6736)

at com.progress.sql.jdbc.JdbcProgress.SQLExecute(JdbcProgress.java:2790)

at com.progress.sql.jdbc.JdbcProgressPreparedStatement.execute(JdbcProgressPreparedStatement.java:238)

at com.progress.sql.jdbc.JdbcProgressPreparedStatement.executeUpdate(JdbcProgressPreparedStatement.java:144)

at org.jboss.resource.adapter.jdbc.WrappedPreparedStatement.executeUpdate(WrappedPreparedStatement.java:308)

at net.sf.hibernate.impl.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:22)

at net.sf.hibernate.persister.EntityPersister.insert(EntityPersister.java:478)

at net.sf.hibernate.persister.EntityPersister.insert(EntityPersister.java:454)

at net.sf.hibernate.impl.ScheduledInsertion.execute(ScheduledInsertion.java:20)

at net.sf.hibernate.impl.SessionImpl.executeAll(SessionImpl.java:2100)

at net.sf.hibernate.impl.SessionImpl.execute(SessionImpl.java:2061)

at net.sf.hibernate.impl.SessionImpl.flush(SessionImpl.java:2005)

at br.com.toyota.dss.sessions.PersistencySessionBean.action(PersistencySessionBean.java:90)

at br.com.toyota.dss.sessions.PersistencySessionBean.add(PersistencySessionBean.java:136)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:324)

at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(StatelessSessionContainer.java:660)

at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:186)

at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSessionInstanceInterceptor.java:77)

at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:107)

at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:237)

at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:98)

at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:130)

at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:208)

at org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessionContainer.java:313)

at org.jboss.ejb.Container.invoke(Container.java:738)

at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:517)

at org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:383)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:324)

at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261)

at sun.rmi.transport.Transport$1.run(Transport.java:148)

at java.security.AccessController.doPrivileged(Native Method)

at sun.rmi.transport.Transport.serviceCall(Transport.java:144)

at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)

at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)

at java.lang.Thread.run(Thread.java:536)</blockquote>

Se alguém tiver misericórdia, por favor diga-me o que fazer …

Att:

5 Respostas

dgouvea

Você tem algum campo String chamado Data ??
Especifica o seu codigo.

rodrigousp

Ok … Aqui está o mapping do hibernate

&lt;?xml version="1.0"?&gt;
&lt;!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD//EN"
    "http&#58;//hibernate.sourceforge.net/hibernate-mapping-2.0.dtd" &gt;
    
&lt;hibernate-mapping&gt;

&lt;!-- 
    Created by Middlegen Hibernate plugin

    http&#58;//boss.bekk.no/boss/middlegen/
    http&#58;//hibernate.sourceforge.net/
--&gt;

&lt;class 
    name="br.com.toyota.dss.hibernate.SvdCartaIcm" 
    table="SVD_CARTA_ICMS"
    schema="PUB"    
&gt;
    &lt;id
        name="pk"
        type="java.lang.String"
        column="CGC_CPF"
        length="36"
    &gt;
    	&lt;generator class="assigned" /&gt;
    &lt;/id&gt;
    &lt;property
        name="nome"
        type="java.lang.String"
        column="NOME"
        length="80"
    /&gt;
    &lt;property
        name="endereco"
        type="java.lang.String"
        column="ENDERECO"
        length="80"
    /&gt;
    &lt;property
        name="numero"
        type="java.lang.String"
        column="NUMERO"
        length="12"
    /&gt;
    &lt;property
        name="complemento"
        type="java.lang.String"
        column="COMPLEMENTO"
        length="20"
    /&gt;
    &lt;property
        name="bairro"
        type="java.lang.String"
        column="BAIRRO"
        length="50"
    /&gt;
    &lt;property
        name="cidade"
        type="java.lang.String"
        column="CIDADE"
        length="50"
    /&gt;
    &lt;property
        name="estado"
        type="java.lang.String"
        column="ESTADO"
        length="4"
    /&gt;
    &lt;property
        name="codPais"
        type="int"
        column="COD_PAIS"
        length="10"
    /&gt;
    &lt;property
        name="cep"
        type="java.lang.String"
        column="CEP"
        length="18"
    /&gt;
    &lt;property
        name="telefone"
        type="java.lang.String"
        column="TELEFONE"
        length="30"
    /&gt;
    &lt;property
        name="fax"
        type="java.lang.String"
        column="FAX"
        length="30"
    /&gt;
    &lt;property
        name="email"
        type="java.lang.String"
        column="EMAIL"
        length="100"
    /&gt;
    &lt;property
        name="rg"
        type="java.lang.String"
        column="RG"
        length="28"
    /&gt;
    &lt;property
        name="inscEst"
        type="java.lang.String"
        column="INSC_EST"
        length="30"
    /&gt;
    &lt;property
        name="inscMunic"
        type="java.lang.String"
        column="INSC_MUNIC"
        length="30"
    /&gt;
    &lt;property
        name="inscSuframa"
        type="java.lang.String"
        column="INSC_SUFRAMA"
        length="30"
    /&gt;
    &lt;property
        name="contato"
        type="java.lang.String"
        column="CONTATO"
        length="40"
    /&gt;
    &lt;property
        name="situacao"
        type="java.lang.String"
        column="SITUACAO"
        length="2"
    /&gt;
    &lt;property
        name="sexo"
        type="java.lang.String"
        column="SEXO"
        length="2"
    /&gt;
    &lt;property
        name="dtSolicita"
        type="java.sql.Date"
        column="DT_SOLICITA"
        length="10"
    /&gt;
    &lt;property
        name="solicitante"
        type="java.lang.String"
        column="SOLICITANTE"
        length="30"
    /&gt;
    &lt;property
        name="codFornec"
        type="int"
        column="COD_FORNEC"
        length="10"
    /&gt;
    &lt;property
        name="hrSolicita"
        type="int"
        column="HR_SOLICITA"
        length="10"
    /&gt;
    &lt;property
        name="divisao"
        type="java.lang.String"
        column="DIVISAO"
        length="4"
    /&gt;
    &lt;property
        name="modelo"
        type="java.lang.String"
        column="MODELO"
        length="32"
    /&gt;
    &lt;property
        name="dtEmissao"
        type="java.sql.Date"
        column="DT_EMISSAO"
        length="10"
    /&gt;
    &lt;property
        name="hrEmissao"
        type="int"
        column="HR_EMISSAO"
        length="10"
    /&gt;
    &lt;property
        name="userEmissao"
        type="java.lang.String"
        column="USER_EMISSAO"
        length="30"
    /&gt;

    &lt;!-- associations --&gt;

&lt;/class&gt;
&lt;/hibernate-mapping&gt;

Aqui está o velho conhecido mbean do hibernate

&lt;server&gt;
&lt;classpath codebase="." archives="ejb_dss.jar"/&gt;
&lt;mbean code="net.sf.hibernate.jmx.HibernateService" name="jboss.jca&#58;service=HibernateFactory,
                            name=HibernateFactory"&gt;
    &lt;depends&gt;jboss.jca&#58;service=RARDeployer&lt;/depends&gt;
    &lt;depends&gt;jboss.jca&#58;service=LocalTxCM,name=ProgressDS&lt;/depends&gt;
    &lt;!-- Make it deploy ONLY after DataSource had been started --&gt;
    &lt;attribute name="MapResources"&gt;mapping/SvdCartaIcm.hbm.xml&lt;/attribute&gt;
    &lt;attribute name="JndiName"&gt;java&#58;/hibernate/HibernateFactory&lt;/attribute&gt;
    &lt;attribute name="Datasource"&gt;java&#58;/ProgressDS&lt;/attribute&gt;
    &lt;attribute name="Dialect"&gt;net.sf.hibernate.dialect.ProgressDialect&lt;/attribute&gt;
    &lt;attribute name="TransactionStrategy"&gt;net.sf.hibernate.transaction.JTATransactionFactory&lt;/attribute&gt;
    &lt;attribute name="TransactionManagerLookupStrategy"&gt;net.sf.hibernate.transaction.JBossTransactionManagerLookup&lt;/attribute&gt;
    &lt;attribute name="UseOuterJoin"&gt;false&lt;/attribute&gt;
    &lt;attribute name="ShowSql"&gt;false&lt;/attribute&gt;
    &lt;attribute name="UserTransactionName"&gt;java&#58;/actuate&lt;/attribute&gt;
&lt;/mbean&gt;
&lt;/server&gt;

Aqui está o código de persistência jboss - hibernate

package br.com.toyota.dss.sessions;

import java.io.Serializable;
import java.lang.reflect.InvocationTargetException;
import java.rmi.RemoteException;
import java.util.List;

import javax.ejb.EJBException;
import javax.ejb.SessionBean;
import javax.ejb.SessionContext;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

import net.sf.hibernate.Hibernate;
import net.sf.hibernate.HibernateException;
import net.sf.hibernate.Session;
import net.sf.hibernate.SessionFactory;
import br.com.toyota.dss.interfaces.ActionCode;

/**
 * 
 * @author Rodrigo di Lorenzo Lopes
 * 
 * @ejb.bean description = "Sessao para peristencia dos pojos"
 * 			 display-name = "SessionBean para peristencia dos pojos"
 * 			 jndi-name = "ejb/production/PersistencySession"
 * 			 local-jndi-name = "ejb/production/PersistencySession"
 * 			 type = "Stateless"
 * 			 generate = "true"
 * 			 transaction-type = "Container"
 * 			 view-type = "both"	
 *
 * @ejb.transaction type = "Required"
 * @ejb.util generate = "physical"
 * 
 */
public class  PersistencySessionBean implements SessionBean &#123;

	public SessionContext sessionContext;
	private static SessionFactory factory;

	public void ejbCreate&#40;&#41; &#123;&#125;
	public void ejbActivate&#40;&#41; throws EJBException, RemoteException &#123;&#125;
	public void ejbPassivate&#40;&#41; throws EJBException, RemoteException &#123;&#125;
	public void ejbRemove&#40;&#41; throws EJBException, RemoteException &#123;&#125;
	public void setSessionContext&#40;SessionContext arg0&#41; throws EJBException, RemoteException &#123;
		sessionContext = arg0;
	&#125;

	/**
	 * Abre uma nova sessao com lookup do contexto inicial
	 * @return uma nova sessão aberta 
	 * @throws NamingException a excessao lancada pela definicao
	 * errada no jndi 
	 * @throws HibernateException a excessao do hibernate em abrir
	 * uma sessao 
	 */
	
	private Session openSession&#40;&#41; throws HibernateException, NamingException &#123;
		if &#40;factory== null&#41;&#123;
			Context context = new InitialContext&#40;&#41;;
			factory = &#40;SessionFactory&#41; context.lookup&#40;"java&#58;/hibernate/HibernateFactory"&#41;;
		&#125;	
		return factory.openSession&#40;&#41;;  
	&#125;
	
	public void setSessionFactory &#40;SessionFactory factory&#41;&#123;
		PersistencySessionBean.factory = factory; 
	&#125;
	


	public void action &#40;int code, Object pojo&#41; &#123;
		Session session = null;
		try &#123;
			session = this.openSession&#40;&#41;;
			switch &#40;code&#41; &#123;
				case ActionCode.Add&#58;
				session.save&#40;pojo&#41;;
					break;
				case ActionCode.delete&#58;
				session.delete&#40;pojo&#41;;
				break;
			
				case ActionCode.update&#58;
				session.update&#40;pojo&#41;;
				break;			
			&#125;
			session.flush&#40;&#41;;		
			if &#40;ActionCode.delete != code&#41;  session.refresh&#40;pojo&#41;;
			
		&#125; catch &#40;HibernateException e&#41; &#123;
			if &#40;!session.isConnected&#40;&#41;&#41;&#123;
				System.out.println&#40;"Session is not Connected!"&#41;;
			&#125;				
			if &#40;!session.isOpen&#40;&#41;&#41;&#123;
				System.out.println&#40;"Session is not open"&#41;;
			&#125;
			System.out.println&#40;"HibernatException"&#41;;
			System.out.println&#40;"Pojo = " + pojo&#41;;
			switch &#40;code&#41; &#123;
				case ActionCode.Add&#58;
					System.err.println&#40;"Problem with adding"&#41;;		
					break;
				case ActionCode.delete&#58;
					System.out.println&#40;"Problem with deletting"&#41;;	
				break;			
				case ActionCode.update&#58;
					System.out.println&#40;"Problem with updating"&#41;;		
				break;
			&#125;
			e.printStackTrace&#40;&#41;;
		&#125; catch &#40;NamingException e&#41; &#123;
			System.err.println&#40;"NamingException"&#41;;
			// TODO Auto-generated catch block
			e.printStackTrace&#40;&#41;;
		&#125;
		finally &#123;
			try &#123;
				session.close&#40;&#41;;
			&#125; catch &#40;HibernateException e1&#41; &#123;
				System.err.println&#40;"I cannot close this session"&#41;;
				// TODO Auto-generated catch block
				e1.printStackTrace&#40;&#41;;
			&#125;
		&#125;
	&#125;

	/**
	 * 
	 *@ejb.interface-method view-type = "both"
	 */
	public void add&#40;Object pojo&#41; throws HibernateException, IllegalAccessException, InvocationTargetException, NoSuchMethodException, NamingException &#123;
		System.out.println&#40;"code=" +  ActionCode.Add&#41;;
		action &#40;ActionCode.Add, pojo&#41;;
	&#125;
	
	
	/**
	 * 
	 *@ejb.interface-method view-type = "both"
	 */
	public void delete&#40;Object Pojo&#41; throws HibernateException, NamingException &#123;
		System.out.println&#40;"code=" +  ActionCode.delete&#41;;
		action&#40;ActionCode.delete, Pojo&#41;;
	&#125;

	
	/**
	 * 
	 *@ejb.interface-method view-type = "remote"
	 */
	public void update&#40;Object Pojo&#41; throws HibernateException, NamingException &#123;
		System.out.println&#40;"code=" +  ActionCode.update&#41;;
		action&#40;ActionCode.update, Pojo&#41;;
	&#125;


	/**
	 * 
	 *@ejb.interface-method view-type = "remote"
	 */
	public Object findbypk&#40;Class classPojo, Serializable pk&#41; throws HibernateException&#123;
		Session session = null;
		try &#123;
			session = this.openSession&#40;&#41;;
			Object pojo = &#40;Object&#41; session.load&#40;classPojo, pk&#41;;
			return pojo;
		&#125; catch &#40;HibernateException e&#41; &#123;
			System.err.println&#40;"hibernate Exception&#58; Erro ao Carregar pojo"&#41;;
			System.err.println&#40;"name of classPojo=" + classPojo&#41;;
			throw e;
		&#125; catch &#40;NamingException e&#41; &#123;
			e.printStackTrace&#40;&#41;;
		&#125;
		finally&#123;
			session.close&#40;&#41;;
		&#125;
		return null;
	&#125;

	/**
	 * 
	 *@ejb.interface-method view-type = "remote"
	 */
	public List find&#40;String className, String field, String value&#41; throws HibernateException &#123;
		Session session = null;
		List list = null;
		try &#123;
			session = this.openSession&#40;&#41;;
			String query ="FROM " + className	 + " as table WHERE table." + field + "= '" + value+ "'"; 
			System.out.println&#40;query + "," +  value+ "Hibernate.STRING"&#41;;
			list = session.find&#40;query&#41;;		
		&#125; catch &#40;HibernateException e&#41; &#123;
			System.err.println&#40;"hibernate Exception&#58; Query Exception!"&#41;;
			throw e;
		&#125; catch &#40;NamingException e&#41; &#123;
			// TODO Auto-generated catch block
			e.printStackTrace&#40;&#41;;
		&#125;
		finally &#123;
			session.close&#40;&#41;;	
		&#125;
		return list;
	&#125;
&#125;

e finalmente … um test de unidade …

/*
 * Created on 21/10/2003
 *
 * To change the template for this generated file go to
 * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
 */
package br.com.toyota.dss.sessions;

import java.rmi.RemoteException;
import java.util.Calendar;
import java.util.Iterator;
import java.util.List;

import javax.naming.NamingException;

import junit.framework.TestCase;
import net.sf.hibernate.HibernateException;
import br.com.toyota.dss.hibernate.SvdCartaIcm;
import br.com.toyota.dss.interfaces.PersistencySession;
import br.com.toyota.dss.interfaces.PersistencySessionHome;
import br.com.toyota.dss.utils.PersistencySessionUtil;

/**
 * @author Rodrigo di Lorenzo Lopes
 *
 */
public class SimpleTest extends TestCase &#123;

	private PersistencySession session = null;

	private PersistencySessionHome home;

	private SvdCartaIcm cartaIcms;

	/**
	 * Constructor for SvdCartaIcmTest.
	 * @param arg0
	 */
	public SimpleTest&#40;String arg0&#41; &#123;
		super&#40;arg0&#41;;
	&#125;

	public static void main&#40;String&#91;&#93; args&#41; &#123;
		junit.textui.TestRunner.run&#40;SimpleTest.class&#41;;
	&#125;

	public static SvdCartaIcm aSvdCartaIcm &#40;&#41;&#123;
		SvdCartaIcm cartaIcms = new SvdCartaIcm&#40;&#41;;
		cartaIcms.setBairro&#40;"Butantã"&#41;;
		cartaIcms.setCep&#40;"05360-150"&#41;;
		cartaIcms.setCidade&#40;"São Paulo"&#41;;
		cartaIcms.setCodFornec&#40;0&#41;;
		cartaIcms.setCodPais&#40;55&#41;;
		cartaIcms.setComplemento&#40;"apt 61ag"&#41;;
		cartaIcms.setContato&#40;"Rodrigo"&#41;;
		cartaIcms.setDivisao&#40;"Hillux"&#41;;
		Calendar calendar = Calendar.getInstance&#40;&#41;;
		calendar.set&#40;2003, 9, 23&#41;;
		cartaIcms.setDtEmissao&#40;calendar.getTime&#40;&#41;&#41;;
		calendar.set&#40;2003, 11, 11&#41;;
		cartaIcms.setDtSolicita&#40;calendar.getTime&#40;&#41;&#41;;
		cartaIcms.setEmail&#40;"[email removido]"&#41;;
		cartaIcms.setEndereco&#40;"Av Sao Remo"&#41;;
		cartaIcms.setEstado&#40;"SP"&#41;;
		cartaIcms.setFax&#40;"37356368"&#41;;
		cartaIcms.setHrEmissao&#40;12&#41;;
		cartaIcms.setHrSolicita&#40;17&#41;;
		cartaIcms.setInscEst&#40;""&#41;;
		cartaIcms.setInscMunic&#40;""&#41;;
		cartaIcms.setInscSuframa&#40;""&#41;;
		cartaIcms.setModelo&#40;"ThunderBold"&#41;;
		cartaIcms.setNome&#40;"Rodrigo di Lorenzo Lopes"&#41;;
		cartaIcms.setNumero&#40;"463"&#41;;
		cartaIcms.setPk&#40;"[telefone removido]"&#41;;
		cartaIcms.setRg&#40;"M9161846"&#41;;
		cartaIcms.setSexo&#40;"Masculino"&#41;;
		cartaIcms.setSituacao&#40;"Pendente"&#41;;
		cartaIcms.setSolicitante&#40;"Rodrigo"&#41;;
		cartaIcms.setTelefone&#40;"246546368"&#41;;
		cartaIcms.setUserEmissao&#40;"rlopes"&#41;;
		return cartaIcms;
		
	&#125;

	 
	protected void setUp&#40;&#41; throws Exception &#123;
		super.setUp&#40;&#41;;
		if &#40;session == null&#41;&#123;
			cartaIcms = SimpleTest.aSvdCartaIcm&#40;&#41;;		
			home = PersistencySessionUtil.getHome&#40;&#41;;
			System.out.println&#40;"Adicionando nova Carta de icms no setUp"&#41;;
			session = home.create&#40;&#41;;
			session.add&#40;cartaIcms&#41;;
		&#125;
	&#125;

	/*
	 * @see TestCase#tearDown&#40;&#41;
	 */
	protected void tearDown&#40;&#41; throws Exception &#123;
		super.tearDown&#40;&#41;;
		session.delete&#40;cartaIcms&#41;;
		session.remove&#40;&#41;;
	&#125;

	public void testAdd&#40;&#41; throws HibernateException, RemoteException &#123;
		SvdCartaIcm cartaIcms2 = null;
			// cartaIcms2 = &#40;SvdCartaIcm&#41; session.findbypk&#40;SvdCartaIcm.class, cartaIcms.getPk&#40;&#41;&#41;;
			List list = session.find&#40;"SvdCartaIcm", "pk", cartaIcms.getPk&#40;&#41;&#41;;
			Iterator iter = list.iterator&#40;&#41;;
			if &#40;!list.isEmpty&#40;&#41;&#41;&#123;
				cartaIcms2 = &#40;SvdCartaIcm&#41;iter.next&#40;&#41;;
				System.out.println&#40;"nome=&gt;"+cartaIcms2.getNome&#40;&#41;&#41;;
			&#125;
			else &#123;
				System.err.println&#40;"Lista vazia"&#41;;
			&#125;
			assertEquals&#40;"Rodrigo di Lorenzo Lopes", cartaIcms2.getNome&#40;&#41;&#41;;
	&#125;
	
	public void testFindByPk &#40;&#41; throws HibernateException, RemoteException&#123;
		SvdCartaIcm cartaIcms2 = null;
		cartaIcms2 = &#40;SvdCartaIcm&#41; session.findbypk&#40;SvdCartaIcm.class, cartaIcms.getPk&#40;&#41;&#41;;
		assertEquals&#40;cartaIcms.getBairro&#40;&#41;, cartaIcms2.getBairro&#40;&#41;&#41;;
	&#125;
	
	public void testUpdate&#40;&#41; throws HibernateException, RemoteException, NamingException&#123;
		cartaIcms.setBairro&#40;"Tatuapé"&#41;;
		session.update&#40;cartaIcms&#41;;
		SvdCartaIcm cartaIcms2 = null;
		cartaIcms2 = &#40;SvdCartaIcm&#41; session.findbypk&#40;SvdCartaIcm.class, cartaIcms.getPk&#40;&#41;&#41;;
		assertEquals&#40;cartaIcms.getBairro&#40;&#41;, cartaIcms2.getBairro&#40;&#41;&#41;;		
	&#125;
&#125;

Blz ?

dgouvea

rodrigousp, ta meio complicado de analisar o seu código, faz o seguinte, o que eu sempre faço quando uso EJB, no catch você coloca uma forma de indice, sempre que ocorrer algum erro vai imprimir na tela o indice e depois a mensagem de erro, assim você vai saber o ponto que deu erro, ficando mais fácil de analisar.

Foi mal, mas espero que essa dica te ajude.

rodrigousp

Mas… como eu já havia dito… O erro é no momento de salvar.
Mais precisamente… no session.flush();

C

Dê uma olhada no script de criação da tabela em questão e confira a largura de todos os campos tipo string ( VARCHAR e similares ) , pois pelo visto o hibernate está tentando gravar mais caracteres do que a coluna suporta.

Criado 24 de outubro de 2003
Ultima resposta 28 de out. de 2003
Respostas 5
Participantes 3