加入 spring 数据查询库
join in spring data query repository
@Query("select u from User u join u.favoriteRestos s where u.id = ?1 ")
User findByIdWithFavoriteRestos (Long userId);
O 在我的回购中有这个查询,但不是返回一个空的 favoriteRestos 集合的用户而是返回一个空用户
那个returns也是一个空用户:
@Query("select u from User u join fetch u.favoriteRestos s where u.id = ?1 ")
User findByIdWithFavoriteRestos (Long userId);
我也试过:
@Query("select u from User u left join u.favoriteRestos s where u.id = ?1 ")
User findByIdWithFavoriteRestos (Long userId);
它没有找到任何用户,因为 join
是内部联接。您需要添加 left
关键字:
@Query("select u from User u left join fetch u.favoriteRestos s where u.id = ?1 ")
User findByIdWithFavoriteRestos (Long userId);
P.S.: fetch
如果你有一个默认的(懒惰的)对多映射,如果你想填充集合,也需要 fetch
。
@Query("select u from User u join u.favoriteRestos s where u.id = ?1 ")
User findByIdWithFavoriteRestos (Long userId);
O 在我的回购中有这个查询,但不是返回一个空的 favoriteRestos 集合的用户而是返回一个空用户
那个returns也是一个空用户:
@Query("select u from User u join fetch u.favoriteRestos s where u.id = ?1 ")
User findByIdWithFavoriteRestos (Long userId);
我也试过:
@Query("select u from User u left join u.favoriteRestos s where u.id = ?1 ")
User findByIdWithFavoriteRestos (Long userId);
它没有找到任何用户,因为 join
是内部联接。您需要添加 left
关键字:
@Query("select u from User u left join fetch u.favoriteRestos s where u.id = ?1 ")
User findByIdWithFavoriteRestos (Long userId);
P.S.: fetch
如果你有一个默认的(懒惰的)对多映射,如果你想填充集合,也需要 fetch
。