私はレガシーデータベースで作業しており、SpringデータJPAをリポジトリアクセスに使用しています。テーブルの1つに数値データ型のID列がありますが、ワイルドカード文字を使用して部分一致を実行できる必要があります。だから、12は私がネイティブクエリを書いていた場合、私は数値ベースの列の部分一致の型変換を回避する方法
select * from table where id like 12%
を行うことができます1234と一致する必要がありますが、型の安全性を提供春JPA基準のAPIを使用しているとき、私は私のようなを使用することができる前に型変換を行う必要がありますオペレータ
cb.like(root.get(SomeEntity_.id).as(String.class), str + "%")
私はlike
演算子を使用して文字列の一致を実行できるようにの.as(String.class)を追加する必要があります注意してください。これは、データ型変換をもたらし、クエリはID索引
cast(table0_1_.id as varchar(255)) like ?
の恩恵を受けることができないタイプの変換を実行することなく、この数ベースの列のような試合を実行する方法はありますか?
意味があります。参考になりました。 – adeelmahmood