使用对象属性作为反应性Crud存储库@Query方法中的参数

问题描述 投票:0回答:1

尝试使用@Query解决使用反应堆对象存储库中spring-data-r2dbc方法中的使用过滤器对象属性作为参数的问题。

@Query("SELECT id, someId FROM Foo WHERE someId=:query.someId"")
Flux<Foo> findByCollectionQuery(FooCollectionQuery query);

FooCollectionQuery:

@Value
public class PaymentCollectionQuery {

    @NotNull
    UUID someId;

}

是否有可能将整个PaymentCollectionQuery对象提供给@Query批注,以指定查询中的具体属性?

现在我得到了以下例外:

java.lang.UnsupportedOperationException: Binding parameters is not supported for the statement 'SELECT id, someId FROM Foo WHERE someId=query.someId'
spring-boot spring-data-r2dbc
1个回答
0
投票

尝试使用SpEL

@Query("SELECT id, someId FROM Foo WHERE someId = :#{#query.someId}")
Flux<Foo> findByCollectionQuery(@Param("query") FooCollectionQuery query);
© www.soinside.com 2019 - 2024. All rights reserved.