【问题标题】:How to fix “Incorrect string value for the column at the row 1” errors?如何修复“第 1 行列的字符串值不正确”错误?
【发布时间】:2023-03-17 11:50:01
【问题描述】:
How to fix “Incorrect string value for the column at the row 1” errors 

在我的 java 项目中,我在我的实体类中为字段 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

那么我该如何解决上述异常?

【问题讨论】:

  • 如果您可以尝试将数据类型更改为长文本。
  • 我尝试使用长文本,但仍然出现错误。

标签: java mysql hibernate encryption


【解决方案1】:

是 MySQL 数据库吗?

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

您可以使用以下 SQL 来执行此操作。根据需要更改 sizenot null 选项

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

【讨论】:

    猜你喜欢
    • 2010-11-13
    • 1970-01-01
    • 2016-03-13
    • 1970-01-01
    • 2019-02-26
    • 2020-04-18
    相关资源
    最近更新 更多