Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

Oracleの「NULLS FIRST」「NULLS LAST」の使用

初めてカキコします。
いろいろネットなどを調べてみたのですが、
Hibernateと「NULLS FIRST」「NULLS LAST」を含むキーワードが
なかなかヒットせず、書き込んでみようと思いました。
「NULLS LAST」をORDER BYする時に使用し、ソートをかけても
NULLが上にあがってこないようなリスト一覧を表示したいのですが、
吐かれているログを見ると、どうやらその「NULLS LAST」は消されているようです。
Hibernateではこのキーワードは指定できないのでしょうか?
もしくは対応策など、ご存知の方がいらっしゃれば、
ご教授願えれば幸いです。

2

回答

4225

閲覧

2件の回答

評価

0

Hibernate使ったことないので、Hibernateがどうなってるかは知りませんが、思いつくのは以下のような方法です。

根本的な解決方法:NOT NULL制約をつける
場当たり的な解決方法:NULLのデータを抽出しない
とりあえず動かす(1):Java側で再ソート
とりあえず動かす(2):NULLのデータを抽出していないものとNULLのデータのみ抽出したものをJava側でマージ

評価

0

ご回答ありがとうございます!

実はNULLが入ってしまうのは、外部結合でデータを
引っ張っているためにどうしてもNULLになってしまうのです。
Hibernateでなければ、CASE文で対応できるのですが、
Hibernateでは書けないのかなと、それも調べてみましたがありませんでした。
>場当たり的な解決方法:NULLのデータを抽出しない
は、まだ試していませんが「なるほど」ですね。
一度に取得することばかり考えていたので、全く思いつきませんでした。

ありがとうございます!試してみます!

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。