2017-03-08 4 views
0

ここに私の質問です。私のHQL QuerysのFROM文の中にサブクエリを置くことはできますか?

SELECT letter 
FROM 
Letter AS letter, 
(evaluateDisplayName) AS displayName 
WHERE 
letter.id =: someID 
AND displayName =: someDisplayName 
// AND etc etc... 

この部分のサブクエリ:

(Do some subquery here) AS displayName 

私は形成する方法がわかりません。しかし、ロジックは次のようなものです。

private String evaluateDisplayName(Letter letter) { 
     def username = letter?.sender?.username 
     def lastName = letter?.sender?.lastName 
     def emailAddress = letter?.sender?.emailAddress 

     return username ?: lastName ?: emailAddress 
    } 

これをサブクエリにするにはどうすればいいですか?

答えて

0

サブクエリは必要ありません。evaluateDisplayNameのロジックは、​​3210関数と同じようです:最初のnullでない値を返します。これを試してみてください:

SELECT letter 
FROM 
Letter AS letter LEFT JOIN letter.sender AS sender 
WHERE 
letter.id = :someID 
AND COALESCE(sender.username, sender.lastName, sender.emailAddress) = :someDisplayName 
// AND etc etc... 
+0

ありがとう、私はまたしばらく前に合体しました。 – beef

関連する問題