【问题标题】:Hibernate : String Index Out Of Bounds ExceptionHibernate:字符串索引越界异常
【发布时间】:2014-10-16 08:55:18
【问题描述】:

MySql 表中有一个列定义为 char(1)。该列有一个空值(非空)。在使用 Hibernate 阅读此内容时,它会引发异常:

java.lang.StringIndexOutOfBoundsException:字符串索引超出范围:0 在 java.lang.String.charAt(String.java:658)

这是我的那个表的域类:

@Entity
@Table(name="ACTIONS",schema="IPLAN")
public class Actions
{
@Id
@GeneratedValue
@Column(name="ID")
private long id;

@Column(name="TOTAL_HOURS")
private int hours;

@Column(name="TYPE")
private char type;
//getters and setters
}

更新

更新表格后我遇到了这个问题。使用的查询是:

update actions set type=''

请帮忙!

【问题讨论】:

  • 我对休眠没有太多经验,但我认为这与使用原语有关。尝试将其设为Character,在我看来,无论如何使用包装器是最佳实践
  • 我尝试更改为 Character。但还是同样的问题。

标签: java mysql sql hibernate spring-data


【解决方案1】:

它的值好像不是空的。

检查您是否有“空格”而不是空白。

【讨论】:

    【解决方案2】:

    此问题是由于表中的character field 导致您使用char 作为数据类型,因此请尝试将char 数据类型更改为TinyInt(1)

    This可能会帮助你深入理解。

    【讨论】:

      【解决方案3】:

      我有类似的问题,可以通过使用长度 = 1 的字符串来解决它

      【讨论】:

        猜你喜欢
        • 2019-08-01
        • 2013-12-08
        • 2017-03-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多