
[code]

    //クエリ
    @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();
    
[/code]

エラーメッセージ

[code]

    HTTPステータス 500 - Type specified for TypedQuery [int] is incompatible with query return type [class java.lang.Integer]
    
[/code]


CC BY-SA 4.0
2019-08-27T14:18:22.197
57639
2019-08-27T18:52:01.057
2019-08-27T16:05:56.760
3060
35624
question
java sql
javaでクエリから取得した値を変数に格納できません。


JPAベースのフレームワーク(Hibernate等)をお使いでしたら、その旨本文かタグでお示しいただくと、そこら辺が詳しい方に見つけてもらいやすくなります。

エラーメッセージの

>
[code]

>     Type specified for TypedQuery [int] is incompatible with query return
> type [class java.lang.Integer]
>  
[/code]

と言うのは、

>
[code]

>     型付きクエリーで指定された型(int)はクエリーの戻り値型(Integer)と非互換です
>  
[/code]

と言う意味ですから、まずはそこ(「型付きクエリーで指定された型」)を修正して見るべきでしょう。

[code]

    int id = em.createNamedQuery("id_select" , Integer.class) //<- `Integer`を使う
                    .setParameter("report_id" , report_id)
                    .setParameter("employee" , employee_id)
                    .getSingleResult();
    
[/code]


CC BY-SA 4.0
2019-08-27T18:52:01.057
57643
2019-08-27T18:52:01.057
13972
57639
answer