diff --git a/flyfish-data/flyfish-data-r2dbc/src/main/java/com/flyfish/framework/r2dbc/query/adaptor/FunctionCriteria.java b/flyfish-data/flyfish-data-r2dbc/src/main/java/com/flyfish/framework/r2dbc/query/adaptor/FunctionCriteria.java index 02208cb..4d24e20 100644 --- a/flyfish-data/flyfish-data-r2dbc/src/main/java/com/flyfish/framework/r2dbc/query/adaptor/FunctionCriteria.java +++ b/flyfish-data/flyfish-data-r2dbc/src/main/java/com/flyfish/framework/r2dbc/query/adaptor/FunctionCriteria.java @@ -1,5 +1,6 @@ package com.flyfish.framework.r2dbc.query.adaptor; +import com.flyfish.framework.utils.JacksonUtil; import lombok.Getter; import org.springframework.data.relational.core.query.Criteria; import org.springframework.data.relational.core.query.CriteriaDefinition; @@ -135,7 +136,8 @@ public class FunctionCriteria implements CriteriaDefinition { @Override public FunctionCriteria jsonContains(Object value) { - return create(column, "JSON_CONTAINS", value); + String represent = JacksonUtil.toJson(value).orElse(String.valueOf(value)); + return create(column, "JSON_CONTAINS", represent); } private FunctionCriteria create(SqlIdentifier column, String functionName, Object... values) { diff --git a/flyfish-user/src/test/java/com/flyfish/framework/web/FlyfishUserTest.java b/flyfish-user/src/test/java/com/flyfish/framework/web/FlyfishUserTest.java index 61b6223..01db544 100644 --- a/flyfish-user/src/test/java/com/flyfish/framework/web/FlyfishUserTest.java +++ b/flyfish-user/src/test/java/com/flyfish/framework/web/FlyfishUserTest.java @@ -8,6 +8,7 @@ import com.flyfish.framework.enums.RoleType; import com.flyfish.framework.query.Queries; import com.flyfish.framework.r2dbc.config.R2dbcDataConfig; import com.flyfish.framework.user.annotations.EnableAutoSecurity; +import com.flyfish.framework.user.repository.RoleRepository; import com.flyfish.framework.user.repository.UserRepository; import com.flyfish.framework.utils.JacksonUtil; import jakarta.annotation.Resource; @@ -30,6 +31,8 @@ public class FlyfishUserTest { @Resource private UserRepository userRepository; + @Resource + private RoleRepository roleRepository; @Test public void test() { @@ -74,6 +77,10 @@ public class FlyfishUserTest { .wrap()) .doOnNext(this::log) .blockFirst(); + + roleRepository.findAll(Queries.where(Role::getAuthorities).has(Role.Authority.EDIT).wrap()) + .doOnNext(this::log) + .blockFirst(); } private void log(Object data) {