0

のデータベース照合順序を持つ MySQL 5.1 では、次のlatin1_general_ci場合にこの例外が発生しますUPDATE

例外 [EclipseLink-4002] (Eclipse Persistence Services - 2.2.0.v20110202-r8913): org.eclipse.persistence.exceptions.DatabaseException
内部例外: java.sql.SQLException: 操作 '=' の照合 (latin1_general_ci,IMPLICIT) と (latin1_swedish_ci,IMPLICIT) の不正な組み合わせ
エラーコード: 1267
呼び出し: Medicaltestdetails の更新、TL_medicaltestdetails SET medicaltestdetails.Status = TL_medicaltestdetails.Status WHERE medicaltestdetails.TestDate = TL_medicaltestdetails.TestDate AND medicaltestdetails.TestSerial = TL_medicaltestdetails.TestSerial AND medicaltestdetails.ConsultantId = TL_medicaltestdetails.ConsultantId AND medicaltestedtails.Timedetails.Test
クエリ: UpdateAllQuery(referenceClass=Medicaltestdetails sql="CREATE TEMPORARY TABLE IF NOT EXISTS TL_medicaltestdetails (Chg BIGINT, Remarks VARCHAR(255), Result VARCHAR(255), Status VARCHAR(255), TestDesc VARCHAR(255), TestType VARCHAR(255) , TestDate DATE NOT NULL, TestSerial VARCHAR(255) NOT NULL, ConsultantId VARCHAR(255) NOT NULL, TestTime INTEGER NOT NULL, PRIMARY KEY (TestDate, TestSerial, ConsultantId, TestTime))")

この問題を解決するのを手伝ってください。

4

1 に答える 1

4

JDBC 接続文字列に「&characterEncoding=UTF-8」を追加した可能性があります。もしも

mysql> show variables like "collation_database";
    +--------------------+-----------------+
    | Variable_name      | Value           |
    +--------------------+-----------------+
    | collation_database | utf8_general_ci |
    +--------------------+-----------------+

そんなことはないし、

mysql> show table status;
    +--------------+-----------------+
    | Name         | Collation       |
    +--------------+-----------------+
    | my_view      | NULL            |
    | my_table     | utf8_unicode_ci |
    ...

そうではない

行う:

ALTER DATABASE mydb DEFAULT COLLATE utf8_unicode_ci;

フィールドのエンコーディングを変更します。

ALTER TABLE my_table MODIFY COLUMN my_column column_type CHARACTER SET utf8 COLLATE utf8_unicode_ci [NOT NULL];

またはテーブルのエンコーディングを変更します。

ALTER TABLE my_table CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci

チャオ

ルカ

于 2012-08-20T13:46:11.700 に答える