Pouvons-nous concaténer deux propriétés dans la requête Hibernate HQL?
disons que j'ai un tableau avec deux colonnes firstname
et lastname
avec String datatype. Normalement j'écris ma requête hql comme
"select firstname,lastname from contact"
puis-je écrire une requête hql qui concaténate les deux propriétés ?
Peut-être quelque chose comme "select firstname+lastname as fullname from Contact"
23
demandé sur
abiieez
2013-07-28 20:40:04
4 réponses
select concat(c.firstname, c.lastname) as fullname from Contact c
ou, si vous voulez un séparateur:
select concat(c.firstname, ' ', c.lastname) as fullname from Contact c
Voir la documentation.
37
répondu
JB Nizet
2013-07-28 16:58:04
Vous pouvez créer une colonne calculée dans votre entité:
@Formula(value = " concat(first_name, ' ', last_name) ")
private String fullName;
et dans votre HQL vous vous référez juste à ce champ comme vous le feriez à n'importe quel autre.
dans votre cas, vous pouvez faire:
"select fullName from Contact"
17
répondu
martins.tuga
2015-05-22 01:08:39
je l'ai fait en sorte avec hql
public List<Contract> findContracts(String fullName) {
Query q = sessionFactory.getCurrentSession().createQuery("from Contract c where :fullName = concat(c.firstname, ' ', c.lastname)");
q.setString("fullName", fullName);
return q.list();}
3
répondu
Dosi Bingov
2014-10-30 09:35:20
Vous pouvez également utiliser || l'opérateur de concaténation:
"select c.firstName || ' ' || c.lastName as fullName from Contact"
bien que cela puisse être confus à lire.
2
répondu
Radek Wroblewski
2016-03-16 09:40:34