我有一个函数返回一个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 ]]
答案 0 :(得分:1)
查询返回hEnv
列表HPe
实体的字段(似乎这些实体的缩写导致更多的混淆而不是好处 - 使用描述性名称是个好主意这些事情。)
HPe.hEnv
是字符串吗?也许你的输出很混乱,因为有人在这个字段中存储了格式化的字符串。没有看到你的代码,这很难解读。
顺便说一句,这种方法对于创建dead stores来说有点浪费。写这样的东西绝对没有意义:
List s = new LinkedList();
s= multipleSelect.getResultList();
只需编写
即可保存一行代码(以及LinkedList分配)List s = multipleSelect.getResultList();