我有一个返回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();