gpt4 book ai didi

java - Spring Data 中的动态查询

转载 作者:行者123 更新时间:2023-12-02 12:34:48 28 4
gpt4 key购买 nike

我在特定类上动态构建 native 查询,并且需要将此查询传递给 JpaRepository 来执行它。结果都是一样的。我不知道这是否可行,但这是否是我问题的唯一解决方案。

一个例子:

@Component
public class DataCmd {
public List<IncomingDataDTO> getAllIncomingData(String dynamicQuery){
entity = this.getIncomingDataRepository().findAllByQuery(dynamicQuery);
}
}


@Repository
public interface IncomingDataRepository extends JpaRepository<IncomingData, IncomingDataPK> {
@Query(dynamicQuery)
public List<IncomingData> findAllByQuery();
}

最佳答案

您无法在运行时将参数传递给注释,并尝试使用查询参数调用存储库的方法,但该方法尚未定义。

直接执行 SQL 请求是一个坏主意,你最好像这样编写查询:

@Query("SELECT * FROM Table WHERE a = :id")
public List<IncomingData> findAllByQuery(@Param("id") long id);

或者,如果您想动态构造查询,您可以使用 Spring Data 的 Specification 或使用 QueryDSL 库。更多信息this post .

关于java - Spring Data 中的动态查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45168786/

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