因为添加了转换规则,所以在pgadmin中可以直接使用varchar类型的字符串作为判断条件查询,但是使用mybatis查询数据库会报错operator does not exist
select*from sys_user where del_flag =0and role ='MALE'
解决方法:将varchar类型转成枚举类型再做比较
方式一
select*from sys_user where del_flag =0and role = cast(#{role} as user_role);
方式二
select*from sys_user where del_flag =0and role =#{role}::user_role;
PostgreSQL 枚举类型使用及ERROR: operator does not exist错误处理
//创建枚举类CREATE TYPE USER_ROLE AS ENUM ('MALE', 'FEMALE');//添加转换规则CREATE CAST (VARCHAR AS USER_ROLE) WITH INOUT AS IMPLICIT;//创建表,添加枚举类型字段create table sys_user( row_id bigserial not null constraint sys_user_pkey primary key,