mybatis-plus jsonb格式查询
时间: 2023-07-16 09:13:54 浏览: 169
mybatis-plus读取JSON类型的方法实现
Mybatis-Plus 支持 Jsonb 格式的查询,可以使用 `@TableField` 注解来标注字段的类型为 Jsonb,然后在 XML 文件中使用 `json_contains` 函数进行查询。
以下是一个示例:
实体类:
```java
@Data
public class User {
private Integer id;
private String name;
@TableField(typeHandler = JsonTypeHandler.class)
private Map<String, Object> extra;
}
```
XML 文件:
```xml
<select id="selectByExtra" resultType="com.example.User">
SELECT * FROM user WHERE json_contains(extra, #{key}, '$') AND extra->>#{key} LIKE CONCAT('%', #{value}, '%')
</select>
```
其中,`typeHandler` 属性指定了字段类型为 `JsonTypeHandler`,`json_contains` 函数用于查询,`'$'` 表示在整个 json 对象中查找,`->>` 表示获取 json 对象中某个字段的值。
使用时,可以调用 `selectByExtra` 方法进行查询:
```java
List<User> userList = userMapper.selectByExtra("age", "18");
```
阅读全文