gpt4 book ai didi

java - 查询中的 JPA in 子句

转载 作者:行者123 更新时间:2023-11-29 18:15:37 24 4
gpt4 key购买 nike

我有一个 Api 类,其中包含数据列表:

public class Api {
private String id;

@ManyToMany
private List<Data> datas;
}

我有一个 ApiRepository 扩展 CRUD 存储库,我在其中定义了一个查询:

@Query(value="select api from Api api where :data in (api.datas)")
public List<Api> getDatas(@Param("data") data)

执行查询时出现此错误:

org.springframework.dao.InvalidDataAccessResourceUsageException: could not extract ResultSet; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet] with root cause

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '))' at line 1

最佳答案

您必须从查询中删除使用括号(api.datas):

@Query(value="select api from Api api where :data in api.datas")

如果您有多个值,则可以使用括号,例如:

select api from Api api where :data in ('value1', 'value2', 'value3')

关于java - 查询中的 JPA in 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47054122/

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