JPA Criteria API PostgreSQL数组枚举类型转换

问题描述

我在Postgresql上有这些定义。

CREATE TYPE public.lang AS ENUM ('en','ar','fa');

CREATE TABLE public.some_table (
    id serial not null,languages public.lang[]
    primary key (id)
);

我想使用条件api创建此查询

SELECT count(*) FROM public.some_table WHERE 'ar' = ANY(languages);

我尝试过:

Expression<List<String>> languages = entityRoot.get("languages");
Expression<String> language = builder.literal("en");
builder.equal(language,builder.function("any",String.class,languages));

结果:

select count(someent0_.id) as col_0_0_ from public.some_table someent0_ where ?=any(someent0_.languages)
binding parameter [1] as [VARCHAR] - [en]  
sql Error: 0,sqlState: 42883
ERROR: operator does not exist: character varying = public.lang

如何使用条件api按语言过滤记录?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)