2011-06-03 11 views
5

मैं हाइबरनेट के संबंध में कुछ प्रश्न हैं में पूरे POJO से एक क्षेत्र को पुनः प्राप्त,बल्कि हाइबरनेट

तालिका: Employee_Master

पहचान संख्या नाम Varchar वेतन लंबे

POJO: EmployeeMaster.java

public class EmployeeMaster { 

private int id ; 
private String name; 
private long salary; 

//... all field s getter/ setter methods 


} 

अब मैं इस तरह के आईडी से केवल नाम प्राप्त करना चाहता हूं।

की तरह की तरह SQL क्वेरी:

select name from employee_master where id = 10; 

लेकिन हम में प्राप्त कर सकते हैं इसके बाद के संस्करण एक ही बात हाइबरनेट?

session.createQuery("from EmployeeMaster empMaster where empMaster.id = 10"); 

यह समाधान मुझे पता है लेकिन यह पूरी pojo सूची वापस करेगा। लेकिन मुझे केवल उस क्षेत्र का नाम चाहिए, तो मुझे क्या करना चाहिए?

उत्तर

6

HQL, आप बस एक क्षेत्र के लिए पूछ सकते पर विचार ... मेरे लिए काम नहीं करता है तो मैंने सेट पैरामीटर का इस्तेमाल किया।

0

आप nhibernate में चिह्नित की जरूरत है, लेकिन आपके संदर्भ POJO करने के लिए मुझे मान लें कि आपके जावा में लिख रहे हैं बनाते हैं। क्या आप जेपीए का उपयोग कर रहे हैं?

String employeeName = session.createQuery("select empMaster.name from EmployeeMaster empMaster where empMaster.id = :id").setInteger("id",10).uniqueResult(); 
2

यह मैं

String orderNo = (String) getCurrentSession().createQuery("select orderNumber from Asset where id = :id").setParameter("id", assetId).uniqueResult(); 

setInteger के लिए काम कर रहा है: यदि हां, तो एक देशी क्वेरी का उपयोग

EntityManager em .... 
Query q = em.createNativeQuery("select e.name from employee_master e where e.id = ?"); 
q.setParamter(1, <employee id>); 
String name = (String) q.getSingleResult(); 
1
// to retrieve a single row or record 
String hqlSelectRow ="from Employee where employeeId =:empId"; 
Query query1 = session.createQuery(hqlSelectRow); 
Employee emp = (Employee) query1.setParameter("empId",111).uniqueResult(); 
System.out.println("employee id : "+ emp.getEmployeeId()); 
System.out.println("employee name : "+ emp.getEmployeeName()); 
System.out.println("employee salary : "+ emp.getEmployeeSalary()); 
संबंधित मुद्दे