2011-06-03 12 views
5

tengo alguna pregunta acerca de hibernación,Recuperar solo campo en lugar de toda POJO en hibernación

Tabla: Employee_Master

Número de identificación de Nombre varchar Salario largo

POJO: EmployeeMaster.java

public class EmployeeMaster { 

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

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


} 

Ahora quiero obtener solo el nombre de dicha identificación.

consulta SQL como como:

select name from employee_master where id = 10; 

Pero cómo podemos lograr en Hibernate la misma cosa por encima?

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

Esta solución la conozco pero devolverá toda la lista de pojo. Pero solo quiero ese nombre de campo, ¿qué debo hacer?

Respuesta

6

En HQL, puede simplemente pedir el campo:

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

te ha etiquetado nhibernate, pero su referencia a PoJo a hacer yo supongo que estás escribiendo en Java. ¿Estás usando JPA? Si es así, considere el uso de una consulta nativa ...

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(); 
2

Esto es trabajo para mí

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

setInteger no funciona para mí, entonces utilicé setParameter.

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()); 
Cuestiones relacionadas