【发布时间】:2012-05-04 19:54:32
【问题描述】:
我刚开始使用 JPA,我想知道实现以下目标的最佳方法: 我需要实现一个返回脚本列表的服务,每个脚本都有一个参数列表。我简化了查询,但它是这样的:
(SELECT
p.DESC
FROM
INPUT_PARAMETERS p
INNER JOIN SCRIPT_PARAMS sp ON p.PARAM_ID = sc.PARAM_I
INNER JOIN SCRIPT s ON s.SCRIPT_ID = sc.SCRIPT_ID
WHERE
s.NAME = 'name')
UNION
(SELECT
p.DESC
FROM
OUPUT_PARAMETERS p
INNER JOIN SCRIPT_PARAMS sp ON p.PARAM_ID = sc.PARAM_I
INNER JOIN SCRIPT s ON s.SCRIPT_ID = sc.SCRIPT_ID
WHERE
s.NAME = 'name')
我想返回一个 POJO 对象列表,类似于:
public class Script {
private String name;
private List<String> params;
public Script(){}
public String getName()
{
return name;
}
public void setName(String pName)
{
name = pName;
}
public List<String> getParams()
{
return params;
}
public void setParams(List<String> pParams)
{
params = pParams;
}
}
我想知道从查询中加载 POJO 对象的最佳方式是什么。是最好构建一个 JPQL 查询,还是可以使用原生命名查询,我是否需要获取一个 object[] 并手动构建我的 POJO,或者我可以使用 JPA 从查询中加载对象吗?
【问题讨论】: