如何修复“第1行的列不正确的字符串值”错误?

时间:2014-06-03 10:36:41

标签: java mysql hibernate encryption

How to fix “Incorrect string value for the column at the row 1” errors 

在我的java项目中,我正在使用hibernate,因此在我的实体类中使用字段PASSWORD。

我想使用@ColumnTransformer

来加密和解密
    @Column(name="PASSWORD",length=100)
    @ColumnTransformer(
              read="AES_DECRYPT(PASSWORD, 'ABCD')", 
              write="AES_ENCRYPT(?, 'ABCD')")
    private String password;

但是在节省时间,它会抛出以下异常

javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: Incorrect string value: '\x80\x11(\xC4\xAB\x10...' for column 'PASSWORD' at row 1

那我怎样才能解决上述异常?

1 个答案:

答案 0 :(得分:0)

是MySQL数据库吗?

对于mysql数据库,您可能需要更改列的字符集,在您的情况下为密码

你可以使用下面的SQL来做到这一点。根据需要更改尺寸非空选项

ALTER TABLE database.table MODIFY COLUMN PASSWORD VARCHAR(100)  CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;