有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

获取java。org上的lang.StringIndexOutOfBoundsException。冬眠类型描述符。JAVAHibernate Core 3.6.0的CharacterTypeDescriptor文件

我得到了错误的堆栈下跟踪

String index out of range: 0
java.lang.StringIndexOutOfBoundsException: String index out of range: 0
    at java.lang.String.charAt(String.java:658)
    at org.hibernate.type.descriptor.java.CharacterTypeDescriptor.wrap(CharacterTypeDescriptor.java:80)
    at org.hibernate.type.descriptor.java.CharacterTypeDescriptor.wrap(CharacterTypeDescriptor.java:34)
    at org.hibernate.type.descriptor.sql.VarcharTypeDescriptor$2.doExtract(VarcharTypeDescriptor.java:61)
    at org.hibernate.type.descriptor.sql.BasicExtractor.extract(BasicExtractor.java:64)
    at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:253)
    at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:249)
    at org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:229)
    at org.hibernate.type.AbstractStandardBasicType.hydrate(AbstractStandardBasicType.java:330)
    at org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2265)
    at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1527)
    at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1455)
    at org.hibernate.loader.Loader.getRow(Loader.java:1355)
    at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:611)
    at org.hibernate.loader.Loader.doQuery(Loader.java:829)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:274)
    at org.hibernate.loader.Loader.doList(Loader.java:2533)
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2276)
    at org.hibernate.loader.Loader.list(Loader.java:2271)
    at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:452)
    at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:363)
    at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196)
    at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1268)
    at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102).

我在代码中使用了hibernate-core-3.6.0-Final jar。当我在网上搜索时,建议修改代码如下:

    if ( String.class.isInstance( value ) ) {
             final String str = (String) value;
            return Character.valueOf( str.charAt(0) );
          }

应替换为

    if ( String.class.isInstance( value ) ) {
             final String str = (String) value;
             if ( str.length() == 0 ) {
                return null;
             }
             return Character.valueOf( str.charAt(0) );
          }

我试着这么做。但是做不到。那么我应该降级到hibernate-core-3.5.6-Final jar以避免上述异常吗?。它会引起什么问题吗


共 (0) 个答案