21

基準クエリの整数を文字列にキャストするにはどうすればよいですか?

すなわち:

Predicate predicate = criteriaBuilder.like((Expression) root.get(filterKey),
                    "%" + filterValue + "%");

私はdataTableコンポーネントのフィルターを作成したい....つまり、ID値の場合、次のようなフィルターを取得したい:

「1」と入力すると、「1」を含む ID を持つすべてのアイテムが取得されます (223122 ID は引き続き正しい)

4

3 に答える 3

21

私はこれを自分で使用したことはありませんが、この他の質問:

JPA 2.0 Criteria APIとキャストを使用すると、生成されたJPQLがHibernateで失敗します

あなたが望むことを達成するために.as(String.class)afterを使用することを提案します。root.get(filterKey)

Hibernateを使用している場合は、報告されている バグに注意してください

于 2012-04-19T14:56:52.350 に答える
13

それを試してみてください

Predicate predicate = criteriaBuilder.like(root.get(filterKey).as(String.class),
                    "%" + filterValue + "%");
于 2018-07-23T10:06:39.310 に答える