首页 > 解决方案 > 保存实体时出现 Utf 8 问题

问题描述

我使用带有 jpa、hibernate 和 postgres 的 spring boot 2。

在我的 build.gradle 中,我有

tasks.withType(JavaCompile) {
options.compilerArgs = ["-Xlint:unchecked", "-Xlint:deprecation", "-parameters"]
options.encoding = "UTF-8"
}

我在这里发布了一些课程https://pastebin.com/WgDqZkjf

我遇到了 utf8 的问题

在调试中我看到

    select
        nextval ('ignar.hibernate_sequence')
Hibernate: 
    select
        nextval ('ignar.samples_id_seq')
Hibernate: 
    insert 
    into
        ignar.samplings
        (available_for_test, build_date, color_id, dimension_id, machine_id, print, product_id, reception_date, remark, special_try, test_done, to_print, delay_before_doing_test, press, quantity_received, dtype, id, year) 
    values
        (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 'TraditionalSamplings', ?, ?)
Hibernate: 
    insert 
    into
        ignar.samples
        (created_at, updated_at, absorption_printed, aen_remarque, certificat_include, cube, durability_printed, fresh_density, fresh_weigth, gen_remarque, label, position, sample_letter, sampling_id, sampling_year, absorption, absorption_number, coloration, coloration_number, compression, compression_number, density, draw_down, draw_down_number, durability, durability_number, granulometry, granulometry_number, organic_material, organic_material_number, scaling, scaling_number, id) 
    values
        (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
2018-05-21 15:38:21.214  WARN 2973 --- [io-8080-exec-10] o.h.engine.jdbc.spi.SqlExceptionHelper   : SQL Error: 0, SQLState: 22021
2018-05-21 15:38:21.215 ERROR 2973 --- [io-8080-exec-10] o.h.engine.jdbc.spi.SqlExceptionHelper   : ERROR: invalid byte sequence for encoding "UTF8": 0x00
2018-05-21 15:38:21.215 ERROR 2973 --- [io-8080-exec-10] o.h.i.ExceptionMapperStandardImpl        : HHH000346: Error during managed flush [org.hibernate.exception.DataException: could not execute statement]

标签: postgresqlhibernatespring-bootjpacharacter-encoding

解决方案


可能是您的 char 导致了问题...尝试在您的 java 文件中将其转换为 String


推荐阅读