この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:1
ページ更新者:T
更新日時:2019-07-30 17:55:22

タイトル: IllegalArgumentException occurred while calling setter of
SEOタイトル: 【hibernateエラー】IllegalArgumentException occurred while calling setter of

この記事の要点
  • Hibernate の IllegalArgumentException occurred while calling setter of
  • 原因: Bean の setter が受け取る型と、DB から取得した型が不一致
  • 頻出パターン: カラムの型と Bean フィールドの型が違う(int vs Integer / String vs char[] 等)
  • 対処: マッピング XML や Bean フィールドの型を DB と一致させる

 

エラー内容

Caused by: net.sf.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter of ...
    at net.sf.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:68)
    at net.sf.hibernate.persister.AbstractEntityPersister.setIdentifier(AbstractEntityPersister.java:329)
    at net.sf.hibernate.persister.AbstractEntityPersister.instantiate(AbstractEntityPersister.java:359)
    at net.sf.hibernate.impl.SessionImpl.instantiate(SessionImpl.java:1780)
    at net.sf.hibernate.impl.SessionImpl.instantiate(SessionImpl.java:1772)
    at net.sf.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:502)
    at net.sf.hibernate.loader.Loader.getRow(Loader.java:426)
    at net.sf.hibernate.loader.Loader.doQuery(Loader.java:209)
    at net.sf.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:133)
    at net.sf.hibernate.loader.Loader.doList(Loader.java:955)
    at net.sf.hibernate.loader.Loader.list(Loader.java:946)
    at net.sf.hibernate.hql.QueryTranslator.list(QueryTranslator.java:846)
    at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1543)
    at net.sf.hibernate.impl.SessionImpl.find(SessionImpl.java:1520)
    ...
    
Caused by: java.lang.IllegalArgumentException: argument type mismatch
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:497)
    at net.sf.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:38)
    ... 39 more

 

発生条件/原因/対処法

~.hbm.xmlとそれに対応するbeanファイル(getter/setterクラス)のカラムの型が一致していないことが原因。