0

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

それを機能させる方法はありますか?

よろしくお願いします。

4

1 に答える 1