0

クラス職員がいます。主キー ID と、supervisorID という列があります。スーパーバイザー ID を従業員名として表示したいので、同じテーブルに結合する必要があります。Spring Roo と Hibernate を使用しているため、これを行うには HQL クエリを作成する必要がありますが、SQL から HQL に変換する方法がわかりません。以下は SQL クエリの例です。

SELECT e.ID, e.name AS Employee, s.name AS Supervisor  
FROM employee e  
  INNER JOIN employee s  
  ON s.ID = e.supervisorID  
ORDER BY e.ID; 
4

1 に答える 1

0

スカラークエリが必要なようです。

   List<Object[]> rows = getEntityManager().createQuery(
       "select e.id, e.name, s.name "
        + " from Employee e join fetch e.supervisor s "
        + " order by e.id").getResultList();

   for ( Object[] row: rows ) {
       // Construct an instance (or whatever) with the values
       Long id = (Long) row[0];
       String eName = (String) row[1];
       String sName = (String) row[2];
   }
于 2012-07-17T21:48:02.110 に答える