Всем привет.
Есть класс Comment, у которого есть поле user, определенное вот так:
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "user_id")
@NonNull
private User user;
есть вот такой CommentRepository:
public interface CommentRepository extends CrudRepository<Comment, Integer> {
List<Comment> findByUserId(Integer userId);
}
Все комментарии пользователя я получаю вот так:
commentRepository.findByUserId(user.getId());
все работает верно за исключением того, что запрос выглядит вот так:
select
comment0_."id" as id1_1_,
comment0_."text" as url2_1_,
comment0_."user_id" as user_id3_1_
from
"comments" comment0_
left outer join
"users" user1_
on comment0_."user_id"=user1_."id"
where
user1_."id"=?
я хочу избавиться от этого лишнего join'a (ведь можно делать выборку сразу по user_id из таблицы comments).
использовать аннотацию @Query не хочу, мне кажется, что должно быть более правильное решение.
Спасибо.