Как представить символ пробела в критериях JPA с помощью функции concat - PullRequest
0 голосов
/ 15 марта 2019

Я работал с GROUP BY, используя критерии JPA и столкнулся с проблемой с функцией concat.

Я хочу представить sql-функцию concat в jpa, как показано ниже.

concat(firstName,' ',lastName);

Я пробовал это с помощью построителя критериев jpa, как показано ниже.

cb.function("CONCAT",String.class,root.get("firstName"),cb.literal(" "),root.get("lastName"));

Но этот метод не работает хорошо. Итак, я хотел бы знать, как мы можем представить пробел или пустую строку в критериях JPA?

Любая помощь будет оценена.

Ответы [ 2 ]

0 голосов
/ 22 марта 2019

Я нашел решение сам.

Мы можем использовать Hibernate @Formula для этой цели.

Для этого нам нужно будет ввести новое фиктивное поле и использовать то же отображение в select, как показано ниже.

public class UserEntity {

// other mappings for id,username,firstName,lastName here

 @Formula("nullif(concat(firstname,' ',lastname),' ')") // firstname and lastname are column names
 private String fullName;
}

Затем используйте root.get("fullName"), чтобы получить полное имя пользователя.

0 голосов
/ 15 марта 2019

Есть критерий в критерии bulder concat ()

Expression<String> e = cb.concat(root.get("firstName"), " ");
e = cb.concat(e , root.get("lastName"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...