我有一个包含数据列表的Api类:
public class Api {
private String id;
@ManyToMany
private List<Data> datas;
}
我有一个扩展crud存储库的ApiRepository我定义了一个查询:
@Query(value="select api from Api api where :data in (api.datas)")
public List<Api> getDatas(@Param("data") data)
执行查询时出现此错误:
org.springframework.dao.InvalidDataAccessResourceUsageException: 无法提取ResultSet; SQL [不适用];嵌套异常是 org.hibernate.exception.SQLGrammarException:无法解压缩 具有根本原因的ResultSet]
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:你有一个 SQL语法错误;查看与您的手册相对应的手册 MariaDB服务器版本,用于在&#39;)附近使用正确的语法。&#39;在第1行
答案 0 :(得分:0)
您必须从查询中删除使用括号(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')