0

私はこのクエリスプリングデータ。私はDTOに、これは選択とマッピングを得る必要があります(ないエンティティ)

String query = "select ig.p1, 
     ig.p2, 
     ig.p3, 
     tg.p4 
    from mytable ig, mytable2 tg 
where ..... and ...."; 

を持っていると私はDTO

public class MyDto{ 
//constructor 
private String p1; 
private String p2; 
private String p3; 
private String p4; 
... 
//getters/setters 
} 

を持つカスタム値を選択し得ます。

私は私のDTO

@SqlResultSetMapping(
     name="findReport", 
     classes={ 
       @ConstructorResult(
         targetClass=MyDto.class, 
         columns={ 
           @ColumnResult(name="p1",type = String.class), 
           @ColumnResult(name="p2", type = String.class), 
           @ColumnResult(name="p3", type = String.class), 
           @ColumnResult(name="p4", type = String.class), 
         } 
       ) 
     } 
) 

でこれを作成し、DAO /リポジトリ

@Component 
public class ReportRepositoryImpl implements ReportRepository { 
    @PersistenceContext 
    private EntityManager em; 

    @Override 
    public Report findReportSelect() { 
     Query query = em.createNativeQuery(
       "query","findReport"); 
     @SuppressWarnings("unchecked") 
     Collection<MyDto> dto = query.getResultList(); 

     Iterable<MyDto> itr = dto; 
     return (MyDto)itr; 
    } 
} 

を作成しかし、私はエラーunchecked

マイquations 1.どのように私はこのエラーを修正することができますを持っており、このエラーは何を意味しますか? 2.この結果を得るより簡単な方法はありますか?

答えて

0

query.getResultList()Collection<MyDto>の代わりにタイプなしCollectionを返すため、未確認の警告が表示されます。 EntityManagerメソッドのいずれかを呼び出すと、の代わりにTypedQuery<T>が返されますが、その警告はクリアされます。 This SO answerには@NamedNativeQueryEntityManager.createNamedQuery(name, class)を使用するための良いガイダンスがあります。

関連する問題