user8510613 :
I have an entity like:
@Entity
class Blog{
@Id
private Long id;
// ...
@ManyToOne
@JoinColumn(name = "author_id")
private User author;
}
And I want to perform an "in" query on the author
column, so I wrote my BlogRepository
like:
public interface BlogRepository extends JpaRepository<Blog, Long>, CustomizedBlogRepository {
Page<Blog> findByUserIn(Collection<User> users, Pageable pageable);
}
This works, however, I need to perform two queries for one request, that is to query the User
entity from UserRepository
to get Collection<User> users
. Because in many situation, all I want is semantic like:
select * from blog where author_id in (some_id_list);
So is there anyway in jpa to let me perform query like below without querying the User
entity?
Andronicus :
The Order
part of your method gets in the way. Since you don't want the results ordered, you can use this:
public interface BlogRepository extends JpaRepository<Blog, Long>, CustomizedBlogRepository {
Page<Blog> findByUser_IdIn(Collection<Long> userId, Pageable pageable);
}