查询Spring Data JPA中的连接

时间:2013-11-18 08:34:50

标签: 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

我创建了两个实体A&amp; B并创建了CrudRepository<A,Long>

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

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

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

先谢谢

1 个答案:

答案 0 :(得分:4)

以下是使用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);

注意:

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

useful link