mubatis plus枚举映射
时间: 2023-07-22 14:22:10 浏览: 91
MyBatis Plus提供了EnumTypeHandler来将Java枚举类型映射到数据库中的枚举类型。使用EnumTypeHandler需要以下步骤:
1. 将枚举类型定义为Java的枚举类型。
2. 在MyBatis的配置文件中注册EnumTypeHandler。
3. 在实体类中使用@EnumValue注解指定枚举类型的映射值。
例如,假设我们有一个Order实体类,其中包含一个枚举类型Status:
```java
public class Order {
private Long id;
private String orderNo;
@EnumValue
private Status status;
// 省略getter和setter
}
public enum Status {
CREATED(0, "已创建"),
PAID(1, "已支付"),
SHIPPED(2, "已发货"),
RECEIVED(3, "已收货");
private Integer code;
private String desc;
Status(Integer code, String desc) {
this.code = code;
this.desc = desc;
}
public Integer getCode() {
return code;
}
public String getDesc() {
return desc;
}
}
```
在MyBatis的配置文件中注册EnumTypeHandler:
```xml
<typeHandlers>
<typeHandler handler="com.baomidou.mybatisplus.extension.handlers.EnumTypeHandler" javaType="com.example.demo.entity.Status"/>
</typeHandlers>
```
这样就可以将数据库中的枚举类型映射到Java的枚举类型了。在使用MyBatis Plus进行查询时,可以直接使用枚举类型作为参数,例如:
```java
List<Order> orders = orderMapper.selectList(new QueryWrapper<Order>().eq("status", Status.PAID));
```
这样就可以查询所有状态为已支付的订单了。
阅读全文