我在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=''
请帮忙!
答案 0 :(得分:0)
似乎它的价值不是空白。
检查您是否有'SPACE'而不是空白。
答案 1 :(得分:0)
由于您使用character field
作为数据类型的表中的char
导致此问题,因此请尝试将char数据类型更改为TinyInt(1)
。
This可能会帮助您深入理解。
答案 2 :(得分:0)
我有类似的问题能够通过使用长度为1的String
来修复它