title: In clause for a list of pair of conditions
body: <p>There is a table from where I need to fetch paginated records by applying and condition in a list of paired values, Below is the explanation</p>
  
  <p>Lets say I have a class <code>Billoflading</code> and there are various fields in it
  The two important fields in the table are</p>
  
  <ol>
  <li><code>tenant</code></li>
  <li><code>billtype</code></li>
  </ol>
  
  <p>I have a list of pairs which contain values as </p>
  
  <pre><code>[
     {`tenant1`, `billtype1`},
     {`tenant2`, `billtype2`},
     {`tenant3`, `billtype3`},
     ....
    ]
  </code></pre>
  
  <p>I need a JPA query where the fetch will be like 
  findByTenantAndBilltypeOrTenantAndBillTypeOr.....</p>
  
  <p>in simple sql query it will be like </p>
  
  <pre><code>Select * from `Billoflading` where 
  `tenant` = 'tenant1' and billtype = 'billtype1'
  OR `tenant` = 'tenant2' and billtype = 'billtype2'
  OR `tenant` = 'tenant3' and billtype = 'billtype3'
  OR ......... so on..
  </code></pre>
  
  <p>I tried writing a JPA query as follows</p>
  
  <pre><code>Page&lt;Billoflading&gt; findByTenantInAndBillTypeIn(List&lt;String&gt; tenants, List&lt;String&gt; billTypes, Page page);
  </code></pre>
  
  <p>but this had crossover records as well
  i.e it gave records for tenant1 and billtype2, benant2 and billtype 3 so on... which are not needed in the result set</p>
  
  <p>can anyone please solve this and help me finding a simple solution like</p>
  
  <pre><code>Page&lt;Billoflading&gt; findByTenantAndBillTypeIn(Map&lt;String, String&gt; tenantsAndBilltyes, Page page);
  </code></pre>
  
  <p>I am also ready for the native queries in JPA all I need is there should be no crossovers as this is a very sensitive data</p>
  
  <p>The other workaround I had was fetching the records and applying java 8 filters and that works but the no. of records in a page gets reduced</p>