Micronaut Data バージョン 1.0.2 を使用しています。
次の JPA エンティティ クラスがあるとします。
@Entity
public class Product {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String code;
private String name;
private String fullName;
}
次の方法で全文検索クエリを作成できますPageableRepository
。
@Repository
public interface ProductRepository extends PageableRepository<Product, Long> {
Slice<Product> findByCodeLikeOrNameLikeOrFullNameLike(
String code, String name, String fullName, Pageable pageable);
}
ただし、プロパティの基準をもう 1 つ追加するには問題がありname
ます。私が達成したいことは、次のSQLと同等です:
select * from product
where code like '%search%'
or (name like '%search%' and name not like '%-%')
or full_name like '%search%'
次の方法をテストしました。
Slice<Product> findByCodeLikeOrNameLikeAndNotLikeOrFullNameLike
Slice<Product> findByCodeLikeOrNameLikeAndNotContainsOrFullNameLike
Slice<Product> findByCodeLikeOrNameLikeAndNameNotLikeOrFullNameLike
Slice<Product> findByCodeLikeOrNameLikeAndNameNotContainsOrFullNameLike
それを機能させる方法はありますか?
よろしくお願いします。