2017-02-03 9 views
0

私はHIBERNATEとSQLを学習するのが初めてです。テーブル内で利用可能なカラム数をカウントするクエリが必要です。この仕事を手伝ってください。テーブルのカラム数を取得するためのhibernateクエリ

以下のクエリを試しましたが、一括操作の例外が発生しています。

ありがとうございます。

Query colQuery = session.createSQLQuery("SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE table_schema =:'dn' AND table_name=:'tn'"); 
    colQuery.setString("dn", "abc"); 
    colQuery.setString("tn", "store_data"); 
    int count=colQuery.executeUpdate(); 

答えて

0

コードにいくつかの問題があります。まず、ネイティブクエリの名前付きパラメータでは、その周囲に一重引用符を使用しません。つまり、:dn:'dn'ではありません。次に、SELECTクエリで更新を実行しようとしています。レコードを更新していないので、これも間違っています。結果セットを取得するには、​​に電話するだけです。最後に、Query#setParameter()を使用してパラメータに値を割り当てる必要があると思います。このコードを使用してみてください。私は、結果セット、及びカウントを取得するために、その最初の行の最初の(そして唯一の)列の最初の行にアクセスし

Query colQuery = session.createSQLQuery("SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE table_schema=:dn AND table_name=:tn"); 
colQuery.setParameter("dn", "abc"); 
colQuery.setParameter("tn", "store_data"); 
List<Object[]> rows = colQuery.list(); 
int rowCount = ((Integer) rows.get(0)[0]).intValue(); 

注意。

関連する問題