У меня есть класс 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(userId);
все отлично работает, кроме запроса выглядит так:
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"=?
Я хочу избежать этого объединения, так как могу запросить непосредственно по столбцу user_id
в таблице comments
.
Я не хочу использовать аннотацию @Query
, я думаю, что должна быть умнее.