0

私は次の休止状態のコードを持っています、

session.createQuery("from Car as car where car.keywordName like :keyword").setString("keyword", keyword ).list(); 

次の括弧 %keyword% でキーワードを受け取り、キーワードを含む車のリストを返します。車のキーワードは、コンマで区切られた長い文字列です。たとえば、車の場合、キーワードは「贅沢、広々、ホンダ、4 シーター」と別のステートメントになります。

session.createQuery("from Car as car where car.carId IN (:idList)").setParameterList( "idList", idList ).list();

これは、id のリストから車のリストを返します。単一のキーワードではなく、キーワードのリストから車のリストを返すために、IN のような 2 つの句を組み合わせようとしました。

誰かが光を当てることができれば幸いです。乾杯!

4

1 に答える 1

1

次のようなものを作成するには、クエリを動的に作成する必要があります

select car from Car car 
where car.keywordName like :k1 
or car.keywordName like :k2
or car.keywordName like :k3
...

これを行うための最適なツールはCriteria APIです( で区切られた制限のリストの例については、論理和を使用した 3 番目のコード スニペットを参照してくださいor)。

于 2013-08-31T21:41:13.173 に答える