查询Spring Data JPA中的连接

S A*_*han 6 hibernate jpa-2.0 spring-data-jpa

我想写一个类似的连接

Select a.id,a.desc,b.desc from A a  left join B b on a.MEDIA_ID = b.ID
Run Code Online (Sandbox Code Playgroud)

我创建了两个实体A和B并创建了CrudRepository<A,Long>.

现在,在crudRepository中需要编写一个可以使用上面的连接获取数据的方法.

另外,我在实体A中创建了一个瞬态变量(将其命名为'bDescription)如何在Spring Data JPA中实现这一点.

注意:我需要加入才能找到实体B中特定id(B中的主键并在A中映射为'MEDIA_ID')的'description'(B中的列).

提前致谢

ben*_*n75 6

这是使用 SpringData 的 JOIN 查询示例

public final static String FIND_WITH_DESC_QUERY = "SELECT a,b.desc as  bDescription " + 
                                                   "FROM A a LEFT JOIN a.descriptions b " +
                                                   "WHERE a.mediaID = :id";


@Query(FIND_WITH_DESC_QUERY)
public List<Media> findWithDescription(@Param("id") Long id);
Run Code Online (Sandbox Code Playgroud)

笔记 :

  • descriptions 是实体 A 和 B 之间关系的映射。
  • 这个假设 @OneToMany Set<B> descriptions()

有用的链接