私はJPA(Hibernateの)における下部及び上部の機能に問題がある上で動作していません。私のアプリケーションでは、ユーザーはデータベースに新しい項目を追加する必要がありますが、名前は一意でなければなりません。これを達成するためには、ユーザが入力した文字列とデータベースの文字列を比較し、それを確認しながら大文字小文字を無視する必要があります。私は(それを比較するために)大文字にすべてのデータを作るために、Hibernateの機能を使用していますようHibernateの機能を下限と上限ポーランド特殊文字
残念ながら、すべてが同じままポーランドの特殊文字を除いて正常に動作します。
これは、私はそれが動作するかどうかを確認するために、テストの目的のために使用したコードです:
TypedQuery<String> query = em.createQuery("SELECT upper(i.name) FROM Item i", String.class);
for (String name: query.getResultList())
System.out.println(name);
そして、それは私が何を得るのです。
- CZYSTYBANDAż
- マリーCHEMIK
- MAECHYMECHANIK
- SPRZęT
- のŚPIWóR
- ŚRODEKDEZYNFEKUJąCY
- ŚRODEKCZYSZCZąCY
すべての文字は大文字にする必要があります。データベースでは、最初の単語の最初の文字が常に大文字になります。問題は、±、ę、ż、ź、ó、のような文字に関係しています。¡、Æ、Ż、¾、Ó、£のようになりますが、Hibernateはそれらを1文字それは事件に関してのみ異なる。
低い機能を使用しても同じことが起こります。ポーランド語の文字はまったく影響を受けず、同じままです。
それが唯一のポーランド語の文字を懸念や、あまりにも他の言語からかどうかは知りません。
私はこの問題で任意のヒントのために非常に感謝されます。
編集:私はSQLiteデータベースとドライバXerial 3.8.11.2での決勝にHibernate 5.2.2を使用しています。
EDIT2:私はHibernateでネイティブSQLクエリを使用していることを達成しようとすると、同じことが起こります。
どのバージョンをお使いですか? –
@khalilM私はHibernate 5.2.2 Finalite Xerial 3.8.11.2をSQLiteデータベースで使用しています:) – Bloodlex
しかし、 "ł"はうまくいきますか? –