gpt4 book ai didi

java - 如何使用 JPA 和 Spring 在列表中查找具有字段的不同行?

转载 作者:IT老高 更新时间:2023-10-28 13:48:22 42 4
gpt4 key购买 nike

我正在使用 Spring 连接到数据库。我有一个扩展 CrudRepository<People, Long> 的接口(interface)这是我要在数据库上执行的查询:SELECT DISTINCT name FROM people WHERE name NOT IN UserInputSet .我宁愿在没有任何 sql 注释的情况下这样做,所以如果没有 NOT 是可能的没关系。

有办法吗?我查看了 spring 文档,但找不到任何东西(http://docs.spring.io/spring-data/jpa/docs/current/reference/html/#repositories.query-methods.query-creation)


这是我累了,但它不起作用。

@Query("SELECT DISTINCT name FROM people WHERE name NOT IN (?1)")
List<String> findNonReferencedNames(List<String> names);

这是我得到的异常(exception):

Error creating bean with name 'peopleRepository': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Validation failed for query for method public abstract java.util.List de.test.tasks.persistence.PeopleRepository.findNonReferencedNames(java.util.List)!

Caused by: java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: people is not mapped [SELECT name FROM people WHERE name NOT IN (?1)]

最佳答案

我终于想出了一个没有 @Query 注释的简单解决方案。

List<People> findDistinctByNameNotIn(List<String> names);

当然,我得到了 people 对象,而不仅仅是 Strings。然后我可以在 java 中进行更改。

关于java - 如何使用 JPA 和 Spring 在列表中查找具有字段的不同行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32079084/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com