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
那我怎样才能解决上述异常?
答案 0 :(得分:0)
是MySQL数据库吗?
对于mysql数据库,您可能需要更改列的字符集,在您的情况下为密码
你可以使用下面的SQL来做到这一点。根据需要更改尺寸和非空选项
ALTER TABLE database.table MODIFY COLUMN PASSWORD VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL;