我有一个返回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 ]]

最佳答案

该查询将返回在hEnv实体的字段中找到的HPe列表(似乎这些实体的缩写引起的混乱多于好处-在这类事物中使用描述性名称是个好主意)。

HPe.hEnv是字符串吗?也许您的输出令人困惑,因为有人在此字段中存储了格式化的字符串。没有看到您的代码,这很难解密。

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

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


您只需编写即可保存一行代码(以及LinkedList分配)

List s = multipleSelect.getResultList();

10-08 13:26
查看更多