I use following method in Sprind Data JPA + hibernate: @Query("SELECT u FROM UserEntity u WHERE LOWER(u.loginName) LIKE ?1") Iterable<UserEntity> findAllUsersByNameLike(String likePattern); and pass "%[08" as a parameter. In result I have different responses from Sql Server and from Oracle database. Oracle behaves as expected and treat `[` as an ordinary symbol and returns user entities that end with `[08`. However, Sql Server treat `[` as a special T-SQL symbol (see https://docs.microsoft.com/en-us/sql/t-sql/language-elements/like-transact-sql) and returns user entities with login names that end with `0` or `8`. That is not correct according to JPQL spec (http://docs.oracle.com/html/E13946_04/ejb3_langref.html#ejb3_langref_like) that states that `all other characters [except % and _] stand for themselves`. (same for HQL) |