私は割り当てテーブルを含むデータベースを持っています。テーブルは次のようになります。MySqlを使用した大文字と小文字の問題SpringdataとHibernate
ID | CHARACTER_ASS | TYPE_ASS
文字列の中に文字と数字が格納されます。つまり'A'、 'a'、 'Aa'。 「AA」、1等... 今、私は私のクエリコンソールで次のクエリを実行すると:
select * from assignment a where a.CHARACTER_ASS = 'A'
それは私のデータベース内の小文字のエントリと同様に大文字のエントリを返します。今私はこの質問への答えを探していました。誰かが私にWindows OS上で実行している可能性があると言いました。私はこれを見て、小文字(?)の有無にかかわらずテーブル名に名前を付けることに問題があることがわかっただけです。
他の問題の1つは、私がスプリングデータを使用していることです。春のデータでは、私はクエリの直接のコントロールを持っていないので、私は春のデータのための特定の修正があるのだろうかと思っています。
私はこの問題について、あなたの答えを聞きたいのです:)事前
EDITで
おかげで
私のショーは、TABLEの割り当てを作成:
CREATE TABLE `assignment` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`CHARACTER_ASS` varchar(45) NOT NULL,
`TYPE_ASS` int(11) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8
EDIT2
Assignmentテーブルの照合順序をlatin1_general_csに変更し、MySqlクエリエディタで手動でクエリを実行しようとしましたが、結果としてAとバックを取得しました。 次に、テーブルの照合順序を、テーブルと同じ値に調整しようとしました。 何か間違っているのですか?調整が必要ですか?
EDIT3
[OK]を私はちょうどそれをfixxed。 latin1_general_csを使用する代わりに、私はutf8_binを使用しました。 utf8には大文字と小文字の区別がありません:) JB Nizetが正しい方向に向いてくれてありがとう!
をここで私が得る最初の結果です"mysqlの大文字と小文字を区別"のためのグーグル:http://dev.mysql.com/doc/refman/5.0/en/case-sensitivity.html –
私もそれを発見したが、私はspringdataの原因を助けてくれません。私はspringdataでCOLLATEを使用する手がかりがありません –
照合を使わないでください。バイナリ照合を使用するようにテーブルを構成します。 –