以下のサンプルのような複合キーを持つ休止状態のエンティティを持っています。上記の例では複合キーの大文字と小文字を区別しないハイバネート基準
class A{
B id; //this is the composite key for this class
int property1;
int property2;
int property3;
//getters and setters
}
class B{
String prop1;
String prop2;
String prop3;
}
エンティティは複合キーとしてBを有しています。今私はオブジェクトを複合キーをcrieteriaに渡すことによって以下の基準を書きました。サンプルコードは以下の通りです。
B id=new B("Prop1Val","Prop2Val","Prop3Val");
(A) sessionFactory.getCurrentSession().get(A.class,id)
私の質問は以下のとおりです。
- 私は上記のコードは大文字と小文字を区別し、検索可能と仮定します。私が の場合は、どうすれば大文字と小文字を区別しない検索を行うことができますか?
の問題を解決するには、以下のような基準を作成するのは正しいですか?
基準criteria = sessionFactory.getCurrentSession()。createCriteria(A.class); criteria.add(Restrictions.eq( "id.prop1"、id.getProp1())。ignoreCase()); criteria.add(Restrictions.eq( "id.prop2"、id.getProp2())。ignoreCase()); criteria.add(Restrictions.eq( "id.prop3"、id.getProp3())。ignoreCase());
デフォルトでは、 の大文字小文字を区別するためにhbmファイルを設定する簡単な方法はありますか?
私を助けてください。
参照:http://stackoverflow.com/questions/8636038/how-to-do-case-insensitive-search-in-hibernate-using-criteria – user1016403