尝试使用@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'
尝试使用SpEL:
@Query("SELECT id, someId FROM Foo WHERE someId = :#{#query.someId}")
Flux<Foo> findByCollectionQuery(@Param("query") FooCollectionQuery query);