Sorting refers to the mechanism of arranging/re-arranging something in a specific order. When it comes to java, we talk about placing the elements of an array or a list (Collection) in either Ascending or Descending order. There are multiple ways of achieving the desired order of elements in a collection, but here we will see how to make efficient use of Stream API which was introduced since JDK 8. As we already know, streams work with Lambda expressions and Functional Interfaces and provide some out of the box features which make developers' life easier. To sort a collection, streams have the inbuilt method sorted() which has the following 2 method signatures: 1. Stream < T > sorted (); If we have to use this method, the elements of collection must be comparable i.e. the element object must implement Comparable interface. It will sort the collection according to the natural order of underlying object. 2. Stream < T > sorted ( Comparator <? super T > compa...
Full Text Search (FTS) is a great mechanism that can be used to search the database against a search term. FTS can produce miraculous results when used efficiently. The PostgreSQL database has inbuilt library for FTS and provides various functions to make use of it. It also has a special data type called "tsvector" to store the keywords(tokens) that take part in the searching process. We are not going to discuss about how Postgres handles FTS, but we will discuss about how to use this with Hibernate HQL(Hibernate Query Language). For more info about full text searching with postgres, you can visit This link. To use FTS with Hibernate, we will have to first create a POJO (say PostgreSQLFullTextSearchFunction ) which implements SQLFunction interface. We are going to use the custom Dialect java class (say CustomPostgresDialect ) in the SessionFactory configuration. In this custom dialect class, you will have to register a new SQL function by passing the object of PostgreSQLF...