したがって、次のようなテーブルがあります。
ID | parentID | name | typeID
---------------------------------------
1 | 2 | thing1 | 1
2 | 4 | region1 | 0
3 | 4 | region2 | 0
4 | NULL | region3 | 0
5 | 3 | foo1 | 2
5 | 3 | foo2 | 2
6 | 3 | bar1 | 3
私が必要としているのは、次のような出力です。
ID | region | thing | foo | bar
--------------------------------------------
1 | region1 | thing1 | NULL | NULL
2 | region2 | NULL | foo1 | bar1
3 | region2 | NULL | foo2 | NULL
4 | region3 | NULL | NULL | NULL
これとともに
Select ID,
(CASE WHEN [typeID] = 0 THEN [name] END) AS region,
(CASE WHEN [typeID] = 1 THEN [name] END) AS thing,
(CASE WHEN [typeID] = 3 THEN [name] END) AS foo,
(CASE WHEN [typeID] = 5 THEN [name] END) AS bar
FROM [my].[dbo].[foobarthingtable]
where type = 0 OR type = 1 OR type = 3 OR type = 5
私はこれを(論理的に)得ます:
ID | region | thing | foo | bar
--------------------------------------------
1 | NULL | thing1 | NULL | NULL
2 | region1 | NULL | NULL | NULL
3 | region2 | NULL | NULL | NULL
4 | region3 | NULL | NULL | NULL
5 | NULL | NULL | foo1 | NULL
6 | NULL | NULL | foo2 | NULL
7 | NULL | NULL | NULL | bar1
(親) リージョンと同じ行にある「foos」、「bars」、および「things」を取得するにはどうすればよいですか? これを JSF ページの概要として表示する必要があるため、 JPA の方法 ( CriteriaQuery
) もいいでしょう。
どうも