Spring CrudRepository findByInventoryIds(List<Long> inventoryIdList) - equivalent to IN clause Spring CrudRepository findByInventoryIds(List<Long> inventoryIdList) - equivalent to IN clause java java

Spring CrudRepository findByInventoryIds(List<Long> inventoryIdList) - equivalent to IN clause


findByInventoryIdIn(List<Long> inventoryIdList) should do the trick.

The HTTP request parameter format would be like so:

Yes ?id=1,2,3No  ?id=1&id=2&id=3

The complete list of JPA repository keywords can be found in the current documentation listing. It shows that IsIn is equivalent – if you prefer the verb for readability – and that JPA also supports NotIn and IsNotIn.


For any method in a Spring CrudRepository you should be able to specify the @Query yourself. Something like this should work:

@Query( "select o from MyObject o where inventoryId in :ids" )List<MyObject> findByInventoryIds(@Param("ids") List<Long> inventoryIdList);


Yes, that is supported.

Check the documentation provided here for the supported keywords inside method names.

You can just define the method in the repository interface without using the @Query annotation and writing your custom query. In your case it would be as followed:

List<Inventory> findByIdIn(List<Long> ids);

I assume that you have the Inventory entity and the InventoryRepository interface. The code in your case should look like this:

The Entity

@Entitypublic class Inventory implements Serializable {  private static final long serialVersionUID = 1L;  private Long id;  // other fields  // getters/setters}

The Repository

@Repository@Transactionalpublic interface InventoryRepository extends PagingAndSortingRepository<Inventory, Long> {  List<Inventory> findByIdIn(List<Long> ids);}