6.

【hibernateエラー】IllegalArgumentException occurred while

編集
この記事の要点
  • 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クラス)のカラムの型が一致していないことが原因。

 

編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. ids for this class must be manually assigned before calling save()
  2. Number of positional parameter types (1 does not match number of positional parameters (2)
  3. net.sf.hibernate.MappingException: No persister for ~
  4. net.sf.hibernate.QueryException: unexpected token: as [~]
  5. net.sf.hibernate.MappingException: Error reading resource: ... .hbm.xml Server returned HTTP response code: 503 for URL: http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd Nested exception: Server returned HTTP response code: 503 for URL: http://hibernate.sourceforge.net/hibernate-mapping-3
  6. IllegalArgumentException occurred while calling setter of