Performance difference between searching table with 350 columns and searching table with 25 columns
If someone can point me to a better, performant way of searching for a non-primary key data [...]


Add an index in your database on the column(s) you are filtering on - in this case COL_5. The resulting execution plan should be a single index seek and the performanze difference negligible (or even zero).



Also rather than getting the entire result set, just check if there is at least one resulting row. You can either add a TOP 1 to your query (or whatever SQL equivalent), or add a .setMaxResults(1).