gpt4 book ai didi

java - 从 Spring Data 中的多个表中进行选择

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:46:35 25 4
gpt4 key购买 nike

我需要编写一个选择查询,从 Spring Data Repository 层的多个表中获取数据。我知道我们可以使用 @Query 编写自定义查询,但它只从单个表返回值?

SELECT s.service_id, s.name, us.rating_id 
FROM services s,
ratings r,
user_services us
where
us.service_id = s.service_id and
us.rating_id = r.rating_id and
us.user_id= ?;

最佳答案

您的接口(interface)方法可以使用 native SQL 从多个表中选择列,该方法将返回一个对象数组列表:

public interface MyRepository extends JpaRepository {
@Query(name = [name], nativeQuery = true)
List<Object[]> methodThatQueriesMultipleTables();
}

列表中的每一项都是Object数组,即一行数据

您还可以创建自定义存储库实现:

How to add custom method to Spring Data JPA

@NoRepositoryBean
public interface CustomRepository<[Your object]> {
List<Object[]> methodThatQueriesMultipleTables();
}

public class MyRepositoryImpl<[Your object]> implements CustomRepository<[Your object] {
@PersistenceContext
private EntityManager entityManager;

@Override
public List<Object[]> methodThatQueriesMultipleTables() {
//use JPA query to select columns from different tables
Query nativeQuery = entityManager.createNativeQuery("query");
return query.getResultList();
}
}

关于java - 从 Spring Data 中的多个表中进行选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24638465/

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