前提・実現したいこと
SQLで取得したデータをExcelで出力したいのですが、
taisho_nendoにNULLが入っていない人は正常に出力されるのですが、NULLがある人の場合は、
java.lang.IllegalArgumentExceptionが発生するのです。
データを取得するSQLを実行してみると、成功例でも失敗例でもうまく値を取得できています。
しかし、Queryからlistへデータを代入しようとするとエラーになってします。
どうやって解決したらよいでしょうか。
発生している問題・エラーメッセージ
java.lang.IllegalArgumentException at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
該当のソースコード
import java.io.Serializable; import javax.persistence.ColumnResult; import javax.persistence.ConstructorResult; import javax.persistence.Entity; import javax.persistence.Id; import javax.persistence.SqlResultSetMapping; import javax.persistence.SqlResultSetMappings; import javax.persistence.Table; import javax.persistence.UniqueConstraint; /** * * @author fujita */ @Entity @Table(uniqueConstraints = @UniqueConstraint(columnNames = "shiryo_no")) @SqlResultSetMappings({ @SqlResultSetMapping(name="shiryoSeikyu", classes = @ConstructorResult(targetClass = ResultShiryoSeikyuEntity.class, columns = {@ColumnResult(name = "shiryo_no"), @ColumnResult(name = "school_cd"), @ColumnResult(name = "taisho_nendo"), @ColumnResult(name = "koko_name"), })
データの取得
sql += "AND DB100.shiryo_no IN (" + shiryoStr + ") "; // パラメータを指定 sqlParamList.add(new SqlParamBean(SqlParamId.taishoNendo.getValue(), nendo)); // データ取得 Query query = em.createNativeQuery(sql, "shiryoSeikyu"); for (SqlParamBean sqlParam : sqlParamList) { query.setParameter(sqlParam.setId, sqlParam.setParam); } //↓ここでjava.lang.IllegalArgumentExceptionが発生 List<ResultShiryoSeikyuEntity> resultList = query.getResultList();
補足情報(FW/ツールのバージョンなど)
windows10 64bit
NetBeans IDE 8.0.2
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/09 03:03
2019/10/09 03:06
2019/10/09 04:08