2012-11-21 19 views
0

異常我試圖合併一個對象,它有4個屬性(ID,FIRSTNAME,LASTNAME,SCORE),使用JPA作爲ORM和MySQL作爲RDBMS,我只更新特定ID的分數並獲得例外。合併 xEF xBF xBD

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) 

我該如何擺脫這個問題?謝謝!

EDIT表排序規則是utf8_general_ci

+0

似乎編碼不知道Hibernate?你的連接字符串應該包含類似'connectionCollat​​ion = utf8_general_ci&characterSetResults = utf8' –

+0

我已經在jBoss AS7配置的standalone.xml中使用了附加文本useUnicode = true & characterEncoding = UTF-8 –

回答

2

0xEF 0xBF 0xBD是針對U + FFFD碼點的UTF-8編碼的形式。這發生在UTF-8解析器無法將字節序列解析爲有效的UTF-8序列時發生。

從你的錯誤,它看起來像Hibernate提供這個無效的序列。因此,您需要確定堆棧中的數據處理元素是否使用不正確的編碼解析數據。

相關問題