lionyu
lionyu

Reputation: 643

JPA fetch one column twice

I use JPA/Hibernate3 MySql

msyql:

+--------+----------+-----------+
| org_id | org_name | parent_id |
+--------+----------+-----------+
| dept1  | dev      | -1        |
| dept2  | system   | dept1     |
| detp3  | service  | dept2     |
+--------+----------+-----------+

java

String sql = "select "
               + "    t01.org_id,   "
               + "    t01.org_name, "
               + "    t02.org_name as parent_name "
               + "from s_organization t01 left join s_organization t02 "
               + "                               on t01.parent_id = t02.org_id ";  
    List<Object[]> list= em.createNativeQuery(sql).getResultList();
    for(Object[] objs : list) {
        System.out.println(String.format("org_name:[%8s] parent_name:[%8s]", 
                objs[1], objs[2]));
    }

result:

 org_name:[     dev] parent_name:[     dev]
 org_name:[  system] parent_name:[  system]
 org_name:[ service] parent_name:[ service]

why org_name is equals to parent_name ? how to fix it?

I want show organization in my list page, but data is wrong.

Upvotes: 1

Views: 206

Answers (1)

Ravikiran butti
Ravikiran butti

Reputation: 1668

Not sure about the behavior but can you just try these,

  1. Given an alias name for the org_name.
  2. Remove String.format. and first try to print objs[1] and objs[2] and check what is getting printed.

Upvotes: 1

Related Questions