Hi Deepesh,

This is a bug: no binding was defined for the Java primitive type char or the sql type CHAR. A fix has just been committed to fix this problem. Unfortunately, this means that you will need to checkout and build OpenEJB and TranQL.

The other approach is to write a custom org.tranql.sql.TypeConverter handling the type conversions Character <-> String. It looks like (not tested):
public class CharacterToStringConverter implements TypeConverter {
public Object convertJavaToSQLType(Object opaque) throws TypeConversionException {
       Character value = (Character) opaque;
       if (null == value) {
           return null;
       }
       return character.toString();
   }
public Object convertSQLToJavaType(Object opaque) throws TypeConversionException {
       String value = (String) opaque;
       if (null == value || 0 == value.length()) {
           return null;
       }
       return new Character(value.charAt(0));
   }
}

Then, you need to use it like this::
<sql-type>VARCHAR</sql-type>
<type-converter>CharacterToStringConverter</type-converter>

Thanks,
Gianny


On 18/10/2005 2:31 PM, Deepesh wrote:

Hi,

 I forget to post the full stack trace.

here is the full stack trace without adding the
<sql-type>CHAR</sql-type>
<type-converter>org.tranql.sql.typeconverter.SerializableConverter</type-converter>


in openejb-jar.xml


Caused by: org.tranql.ql.QueryException: Error
executing statement: SELECT U.ACTIVE_FLAG FROM User U
WHERE U.USER_ID = ?
       at
org.tranql.sql.jdbc.JDBCQueryCommand.execute(JDBCQueryCommand.java:79)
       at
org.tranql.cache.QueryFaultHandler.fieldFault(QueryFaultHandler.java:56)
       at
org.tranql.ejb.CMPFieldFaultTransform.get(CMPFieldFaultTransform.java:48)
       ... 51 more
Caused by: org.tranql.sql.TypeConversionException
       at
org.tranql.sql.typeconverter.SerializableConverter.convertSQLToJavaType(SerializableConverter.java:60)
       at
org.tranql.sql.jdbc.binding.TypeConverterBinding.getValue(TypeConverterBinding.java:81)
       at
org.tranql.sql.jdbc.binding.TypeConverterBinding.getValue(TypeConverterBinding.java:85)
       at
org.tranql.sql.jdbc.JDBCQueryCommand.execute(JDBCQueryCommand.java:72)
       ... 53 more



Regards,

Deepesh


                
__________________________________________________________ Yahoo! India Matrimony: Find your partner now. Go to http://yahoo.shaadi.com




Reply via email to