java - JPA - 如何在 postgres 文本数组中查找字符串列表

标签 java postgresql hibernate jpa spring-data-jpa

我有一个文本数组,增删改查操作运行良好。现在,我想使用 native 查询查找字符串列表。我尝试过以下解决方案

@Query(nativeQuery = true, value= "select * from biz_db.biz_user where :skills=ANY(skills) and " +
        "expert=1 and enabled=1 and " +
        "verified=1 order by creation_date desc limit 3")
List<User> findAllExpertsBySkills(@Param("skills") String[] skills);

我得到了

Caused by: org.hibernate.QueryException: Named parameter not bound : skills

感谢任何帮助。

这是User类的技能

@Type( type = "string-array" )
@Column(
        name = "skills",
        columnDefinition = "text[]"
)
private String[] skills;

并在表中定义

skills text[] NULL,

最佳答案

Any 的语法应该是:

WHERE skills = ANY(:skills)

有关更多详细信息,请查看 9.20.4. ANY/SOME

expression operator ANY (array expression)

关于java - JPA - 如何在 postgres 文本数组中查找字符串列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57473133/

相关文章:

sql - 使用什么数据类型在数据库中存储不同的文件

java - 如何获取没有别名的hibernate生成的sql

java - 如何避免两个不同的线程从数据库中读取相同的行(Hibernate 和 Oracle 10g)

java - MYSQL 更新内连接性能

Java在LinkedList类中找不到符号

ruby-on-rails - 表的SQL查询

ruby-on-rails - pg_restore : command not found

java - 测试类应该存储在项目中的什么位置?

java - Groovy/Java - JSON - 通过可变路径更新 JSON

java - 如何在散列之前验证最小、最大密码长度?