2017-08-30 8 views
1

複数の列でSELECTを実行しようとしています。姓の文字列を文字列に連結するかどうかを調べるには、名前と姓と姓を列に区切ってテーブルに存在させます。Hibernate createSQLQuery WHAT句の複数クエリを連結する

query = session.createSQLQuery("SELECT * FROM PEOPLE WHERE NAME || ' ' || FIRST_NAME || ' ' || LAST_NAME AS NOMBRE_COMPLETO LIKE :COMPLETE_NAME").setParameter("COMPLETE_NAME","%"+ nameComplete +"%"); 

これはNullPointerExceptionをスローしています。

私は何をしたいのですか?

私はOracle 12cを使用しています。

答えて

1

あなたのNPEはSQLとはまったく関係がありません。恐らくsessionはnullです。

どちらの方法でも、私が正しく理解していれば、そのクエリをどのように作成するのではなく、最初の名前+姓があなたの与えられたパラメータであるかどうかを知りたいでしょう。もしかして。

その場合は、クエリのようなものでなければなりません。ここでは、(少なくとも、MySQL用)CONCATドキュメントを見ることができます

SELECT * FROM PEOPLE WHERE NAME LIKE :COMPLETE_NAME AND CONCAT(FIRST_NAME, " ", LAST_NAME) AS NOMBRE_COMPLETO LIKE :COMPLETE_NAME 

は:https://www.w3schools.com/sql/func_mysql_concat.asp

は基本的に私達はちょうど間にスペースを追加しています最初の名前と最後の名前。

カラムnameがLIKE complete_nameであればfirst_namelast_nameとの間の連結はcomplete_nameようなものである場合、上記のクエリがチェックされます。

+0

あなたの言うことを試してみると助けてくれてありがとうございます。これまでのところあなたはセッションがnullになっていたのですが、私はあなたの質問を調査し、それが役立つかどうか試してみます。もし私の質問が理解できないのであれば、私の質問は理解できませんでした。テーブルに完全な名前が存在し、lastnamesがcolumnsで分離されているかどうかを調べることです。私はoracle 12cを使用して投稿を追加します。 2つ以上の文字列については、私は2つの文字列を連結し、次に3つ目の文字列を連結することができます。 – Andres

+0

あなたが大変ありがとうございました。私のコードが動作していて、何か新しいことをあなたに教えてくれました。 – Andres

+0

いいえ問題は、うれしい私が助けることができる:) –

関連する問題