24

休止状態では、次のことができます

Query q = session.createQuery("from Employee as e);
List<Employee> emps = q.list();

ここで、intとStringをフェッチしたい場合、どうすればよいですか?

Query q = session.createQuery(""SELECT E.firstName,E.ID FROM Employee E";
List ans = q.list();

では、リストの構造はどうなるのでしょうか。

4

6 に答える 6

50

これで結構です。あなたが理解する必要がある唯一のことは、それがObject []以下のようなリストを返すということです:

     Query q = session.createQuery("select e.id, e.firstName from Employee e");
     List<Object[]> employees= (List<Object[]>)q.list();
     for(Object[] employee: employees){
         Integer id = (Integer)employee[0];
         String firstName = (String)employee[1];
         .....
     }
于 2012-11-28T14:32:12.823 に答える
10

の配列のリストが表示されますObject(それぞれに2つの要素があります)

List< Object[] > employees = q.list();

for ( Object[] employee : employees ) {
    // employee[0] will contain the first name
    // employee[1] will contail the ID
}
于 2012-11-28T14:31:00.607 に答える
3

次のように、これらの値を保持するために新しいオブジェクトを使用する必要があります。

"SELECT NEW EmpMenu(e.name, e.department.name) "
                + "FROM Project p JOIN p.students e " + "WHERE p.name = :project "
                + "ORDER BY e.name").setParameter("project", projectName).getResultList()

この例はhttp://www.java2s.com/Tutorial/Java/0355__JPA/EJBQLCreatenewObjectInSelectStatement.htmから入手できます。

于 2012-11-28T14:30:53.817 に答える
3
List<Object[]> is the structure.

したがって、次のように各要素を取得します。

List ans = q.list();
for(Object[] array : ans) {
    String firstName = (String) array[0];
    Integer id = (Integer) array[1];
}
于 2012-11-28T14:30:58.797 に答える
3
Query qry=session.createQuery("select e.employeeId,e.employeeName from Employee e where e.deptNumber=:p1");
qry.setParameter("p1",30);
List l2=qry.list();
Iterator itr=l2.iterator();
while(itr.hasNext()){
Object a[]=(Object[])itr.next();
System.out.println(a[0]+"/t"a[1]);
}
于 2013-03-26T07:28:26.163 に答える
1

イテレータなし:

@SuppressWarnings( "unchecked" ) 
public List<Employee> findByDepartment(long departmentId){ 

    SQLQuery query = session.createSQLQuery("SELECT {emp.*} " +
                                             " FROM employee emp " + 
                                            +"WHERE emp.department_id = :departement_id");
    query.setLong("department_id",  departmentId);
    query.addEntity("emp",  Employee.class);                        
    return (List<Employee>) = query.list();
}
于 2016-08-25T09:42:00.347 に答える