无法理解请求JPA的结果

时间:2011-07-21 13:44:33

标签: java jpa

我有一个函数返回一个ArrayList<字符串> ,该列表包含使用JPA从数据库中检索的元素,我的问题是我无法理解输出的格式!

功能是:

public ArrayList<String> getMyListEnvironment()
{

  ArrayList<String> env=new ArrayList<String>();
     try{
        EntityTransaction entr=em.getTransaction();
        entr.begin();

       javax.persistence.Query multipleSelect= em.createQuery("SELECT h.hEnv FROM HPe h WHERE h.hPePK.pePlatform = :w ").setParameter("w", "platf1");
     List s =  new LinkedList();
     s= multipleSelect.getResultList();
     env = new ArrayList(s);

       entr.commit(); 

 return env;
      }
      catch (Exception e )
      {
        System.out.println(e.getMessage());
        System.out.println("error");
      }
      finally {
        em.close();
    } 

  return env;
}

输出(结果):

[DTOMonito.HEnv[ envUrl=http://10.55.99.5:1055 ], DTOMonito.HEnv[ envUrl=http://10.55.99.99:8090 ]]

1 个答案:

答案 0 :(得分:1)

查询返回hEnv列表HPe实体的字段(似乎这些实体的缩写导致更多的混淆而不是好处 - 使用描述性名称是个好主意这些事情。)

HPe.hEnv是字符串吗?也许你的输出很混乱,因为有人在这个字段中存储了格式化的字符串。没有看到你的代码,这很难解读。

顺便说一句,这种方法对于创建dead stores来说有点浪费。写这样的东西绝对没有意义:

List s =  new LinkedList();
s= multipleSelect.getResultList();

只需编写

即可保存一行代码(以及LinkedList分配)
List s = multipleSelect.getResultList();