2013-07-28 2 views
22

आइए कहें कि मेरे पास दो कॉलम firstname और lastname स्ट्रिंग डेटाटाइप के साथ एक तालिका है। आम तौर पर मैं अपनी एचकेएल क्वेरी लिखता हूं जैसेक्या हम हाइबरनेट एचक्यूएल क्वेरी में दो गुणों को जोड़ सकते हैं?

"select firstname,lastname from contact" 

क्या मैं एक एचक्यूएल क्वेरी लिख सकता हूं जो दोनों संपत्ति को जोड़ता है?

शायद "select firstname+lastname as fullname from Contact"

उत्तर

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

की तरह कुछ या, यदि आप एक विभाजक हैं:

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

the documentation देखें।

+0

धन्यवाद। क्या बीच में '", "' '' '' '' '' भी जोड़ना संभव है? – abiieez

+2

मेरा संपादित उत्तर देखें। –

3

मैं इसे 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();} 
15

आप अपने इकाई में एक गणना स्तंभ बना सकते हैं किया:

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

और अपने HQL में आप सिर्फ इस क्षेत्र को आप किसी भी करने के लिए क्या करना होगा के रूप में उल्लेख अन्य।

आपके मामले में, आप कर सकते हैं:

"select fullName from Contact" 
2

तुम भी उपयोग कर सकते हैं || कॉन्सटेनेशन ऑपरेटर:

"select c.firstName || ' ' || c.lastName as fullName from Contact" 

हालांकि यह पढ़ने में भ्रमित हो सकता है।

संबंधित मुद्दे