问题描述
我在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 (将#修改为@)