私は、他のいくつかのテーブルへのManyToOneを持つJiraissueテーブルへのonetoany結合を持つworklogテーブルを持っています。
私の要件に基づいて、以下のようにjqplステートメントを書きました。
@NamedQueries({
@NamedQuery(name = "Worklog.findbySelection", query = "SELECT distinct workl.jiraissueWorklog.pkey, workl.jiraissueWorklog.summary, workl.jiraissueWorklog.issuestatusOBJ.pname, workl.jiraissueWorklog.cwduserOBJ.displayName, workl.jiraissueWorklog.created, workl.jiraissueWorklog.updated FROM Worklog workl where workl.jiraissueWorklog.project = :project and workl.startdate between :startDate AND :endDate" ),
})
出力をリストオブジェクトに保存したいので、ワークログオブジェクトとして指定しました。
@SuppressWarnings("unchecked")
public List<JiraissueColumns> findByDateProject(Date startDate,Date endDate,long projectID){
Query query = em.createNamedQuery("Worklog.findbySelection");
query.setParameter("startDate", startDate);
query.setParameter("endDate", endDate);
query.setParameter("project", projectID);
this.listOfWorklog = (List<JiraissueColumns>) query.getResultList();
return listOfWorklog;
}
for ループを使用してリストの内容を検索すると、次のエラーが発生します。
Caused by: java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to listOfWorklog
listOfWorklog は Worklog および Jiraissue オブジェクト タイプのみを受け入れることができることは理解していましたが、Jiraissue には Project、issuelist オブジェクトがあります。それらは Worklog に継承されますか。
JPQLステートメントから出力を取得する正しい方法は何ですか?