前提・実現したいこと
使っている言語はjavaです。
クエリからidカラムの値を取得し、変数idへ格納したい。
発生している問題・エラーメッセージ
値を格納する変数の型が合わずエラーが発生します。
HTTPステータス 500 - Type specified for TypedQuery [int] is incompatible with query return type [class java.lang.Integer] type 例外レポート メッセージ Type specified for TypedQuery [int] is incompatible with query return type [class java.lang.Integer] 説明 The server encountered an internal error that prevented it from fulfilling this request. 例外 java.lang.IllegalArgumentException: Type specified for TypedQuery [int] is incompatible with query return type [class java.lang.Integer] org.hibernate.internal.AbstractSharedSessionContract.resultClassChecking(AbstractSharedSessionContract.java:733) org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:782) org.hibernate.internal.AbstractSharedSessionContract.buildQueryFromName(AbstractSharedSessionContract.java:763) org.hibernate.internal.AbstractSharedSessionContract.createNamedQuery(AbstractSharedSessionContract.java:869) org.hibernate.internal.AbstractSessionImpl.createNamedQuery(AbstractSessionImpl.java:23) controllers.reports.ReportsFavoServlet.doPost(ReportsFavoServlet.java:48) javax.servlet.http.HttpServlet.service(HttpServlet.java:648) javax.servlet.http.HttpServlet.service(HttpServlet.java:729) org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) filters.LoginFilter.doFilter(LoginFilter.java:74) filters.EncodingFilter.doFilter(EncodingFilter.java:40) 注意 原因のすべてのスタックトレースは、Apache Tomcat/8.0.43のログに記録されています
該当のソースコード
//クエリ @NamedQuery( name = "id_select", query = "SELECT rf.id FROM ReportFavo AS rf WHERE rf.report_id = :report_id AND rf.employee = :employee" ) //コントローラ //クエリの実行結果を変数へ格納 int id = em.createNamedQuery("id_select" , int.class) .setParameter("report_id" , report_id) .setParameter("employee" , employee_id) .getSingleResult();
試したこと
変数の型をintからlongに変更してみましたが同じようなエラーが出ました。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
あなたの回答
tips
プレビュー