2012-05-04 8 views
0

JPAを使い始めており、これを実現する最善の方法を知りたいです: スクリプトのリストを返すサービスを実装する必要があります各スクリプトにはパラメータのリストがあります。私は、クエリを簡略化しますが、それはこのようなものです:私は最善の方法であるかを知りたいJPAを使用してリストメンバーと照会してオブジェクトをロードするベストプラクティス

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; 
    } 
} 

(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オブジェクトのリストを返すようにしたいような何かPOJOオブジェクトをクエリからロードします。 JPQLクエリを作成するのが最善でしょうか、ネイティブの名前付きクエリを使用できますか?オブジェクト[]を取得してPOJOを手動で構築する必要がありますか、JPAを使用してクエリからオブジェクトをロードできますか?

答えて

0

スクリプトのインスタンスは手動で作成することができます。。 JPQLでクエリを実行するとき、理由はconstructor expressionが引数としてListを取ることができないということです。さらに、JPQLには共用体がありません。

また、結果がスカラまたはエンティティのみである可能性があるため、SQLクエリでは直接Scriptを構築することはできません。

関連する問題