続き JPAネイティブクエリで複数のエンティティを取得
私のデータベース (テスト)
company - ID {PK}, name staff - ID{PK}, name, companyID{FK} department - ID{PK}, name, companyID{FK}, staffID{FK} project - ID{PK}, name, staffID{FK}
まず、
company
テーブルをバックアップします。String query = "SELECT c.ID as companyid, c.name as companyname FROM company c"; Query q = em.createNativeQuery(query, "MAPPING"); List<CompanyDTO> list = q.getResultList(); Company.java @SqlResultSetMapping(name = "MAPPING", classes = { @ConstructorResult( targetClass = CompanyDTO.class, columns = { @ColumnResult(name = "companyid"), @ColumnResult(name = "companyname") }) }) ...
次に、
staff
テーブルをバックアップします。String query = "SELECT s.ID as staffid, s.name as staffname, s.companyID as companyID FROM staff s JOIN company c ON c.ID = s.companyID"; Query q = em.createNativeQuery(query, "MAPPING"); List<CompanyDTO> list = q.getResultList(); Company.java @SqlResultSetMapping(name = "MAPPING", classes = { @ConstructorResult( targetClass = CompanyDTO.class, columns = { @ColumnResult(name = "staffid"), @ColumnResult(name = "staffname"), @ColumnResult(name = "companyID") }) }) ...
今、テーブルとクラスを修正したくありません。を制御するにはどうすればよいですか? 以下から?
SELECT ... FROM ? List<?> list = q.getResultList();
助けてください...