1

JPAをORMとして、MySQLをRDBMSとして使用して、4つのプロパティ(ID、FIRSTNAME、LASTNAME、SCORE)を持つオブジェクトをマージしようとしていますが、特定のIDのスコアのみを更新し、次の例外が発生します。

08:53:23,521 WARN  [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (Thread-35) SQL Error: 1366, SQLState: HY000
08:53:23,521 ERROR [org.hibernate.engine.jdbc.spi.SqlExceptionHelper] (Thread-35) Incorrect string value: '\xEF\xBF\xBD' for column 'FIRSTNAME' at row 1
08:53:23,527 INFO  [org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl] (Thread-35) HHH00010:On release of batch it still contained JDBC statements
08:53:23,527 ERROR [stderr] (Thread-35) org.springframework.orm.hibernate3.HibernateJdbcException: JDBC exception on Hibernate data access: SQLException for SQL [n/a]; SQL state [HY000]; error code [1366]; Incorrect string value: '\xEF\xBF\xBD' for column 'FIRSTNAME' at row 1; nested exception is org.hibernate.exception.GenericJDBCException: Incorrect string value: '\xEF\xBF\xBD' for column 'FIRSTNAME' at row 1
08:53:23,528 ERROR [stderr] (Thread-35)         at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:645)
08:53:23,528 ERROR [stderr] (Thread-35)         at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:102)
08:53:23,528 ERROR [stderr] (Thread-35)         at org.springframework.orm.jpa.JpaTransactionManager.doCommit(JpaTransactionManager.java:471)
08:53:23,528 ERROR [stderr] (Thread-35)         at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:754)

どうすればこの問題を取り除くことができますか?ありがとう!

テーブル照合の編集はutf8_general_ciです

4

1 に答える 1

3

0xEF 0xBF 0xBDU+FFFDコードポイントのUTF-8エンコード形式です。これは、UTF-8パーサーがバイトシーケンスを有効なUTF-8シーケンスとして解析できない場合に発生します。

エラーから、Hibernateにこの無効なシーケンスが提供されているようです。したがって、スタック内のデータ処理要素が誤ったエンコーディングでデータを解析しているかどうかを判断する必要があります。

于 2012-11-21T09:57:15.237 に答える