2013-07-28 15 views
22

Dize veri türü içeren iki sütunlu firstname ve lastname numaralı bir tablonuz var. NormaldeHazırda bulunan HQL sorgusunda iki özelliği birleştirebilir miyiz?

"select firstname,lastname from contact" 

gibi benim hql sorgu ben özelliğini hem birleştirir bir hql sorgusu yazabilir yazmak?

select concat(c.firstname, ' ', c.lastname) as fullname from Contact c 

the documentation bakınız:

Belki bir şey, bir ayırıcı istiyorsanız, "select firstname+lastname as fullname from Contact"

cevap

33
select concat(c.firstname, c.lastname) as fullname from Contact c 

gibi ya.

+0

Teşekkürler. Aralarında "", "veya" boşlukları eklemek de mümkün mü? – abiieez

+2

Düzenlenmiş cevabımı görün. –

3

Ben

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();} 
15

Sen varlıktaki bir hesaplanan sütun oluşturabilir hql ile öyle yaptı:

@Formula(value = " concat(first_name, ' ', last_name) ") 
private String fullName; 

Ve sadece herhangi yapacağını olarak bu alanı referans HQL içinde diğer.

Senin durumunda

, yapabileceğiniz:

"select fullName from Contact" 
2

de kullanabilirsiniz || Birleştirme işlemi: Okumanın kafa karıştırıcı olabileceği düşünülürse,

.

İlgili konular