老是抛出一下错误:
Exception in thread "main" org.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter of Domain.Typeofuser.drivers
at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:104)
at org.hibernate.tuple.entity.AbstractEntityTuplizer.setPropertyValues(AbstractEntityTuplizer.java:337)
at org.hibernate.tuple.entity.PojoEntityTuplizer.setPropertyValues(PojoEntityTuplizer.java:200)
at org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValues(AbstractEntityPersister.java:3566)
at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:129)
at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:854)
at org.hibernate.loader.Loader.doQuery(Loader.java:729)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
at org.hibernate.loader.Loader.loadEntity(Loader.java:1860)
at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:48)
at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:42)
at org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3044)
at org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:395)
at org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:375)
at org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:139)
at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:179)
at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:103)
at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878)
at org.hibernate.impl.SessionImpl.get(SessionImpl.java:815)
at org.hibernate.impl.SessionImpl.get(SessionImpl.java:808)
at QinHan.DaoImpl.typeofuserDaoImpl.getById(typeofuserDaoImpl.java:19)
at test.main(test.java:22)
Caused by: java.lang.IllegalArgumentException: argument type mismatch
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:42)
... 21 more

解决方案 »

  1.   

    以下是借口实现类:
    public class typeofuserDaoImpl  extends BaseDaoImpl implements typeofuserDAO { public Typeofuser getById(int did){
    Session session=this.getSession();
    Typeofuser typeofuser=null;
    session.isOpen();
    typeofuser=(Typeofuser)session.get(Typeofuser.class, new Integer(did));
    this.closeSession();
    return typeofuser;
    }
    public Session getSession() 
    {
    // TODO Auto-generated method stub
    return HibernateSessionFactory.getSession();
    }

    public void closeSession() 
    {
    // TODO Auto-generated method stub
    HibernateSessionFactory.closeSession();
    }

    }
      

  2.   

    以下是测试类: /**
     * @param args
     */
    public static void main(String[] args) {

    // TODO Auto-generated method stub
    driverDAO driverdao=new driverDaoImpl();
    typeofuserDAO typeofuserdao=new typeofuserDaoImpl();
    Typeofuser typeofuser=null;

    typeofuser=typeofuserdao.getById(1);

    /*
    Drivers driver=new Drivers();
    driver.setDriver_descripition("wo shi qin han");
    driver.setTypeOfUser(typeofuser);

    driverdao.add(driver);
    */
    System.out.println( typeofuser.getName());
    }}
      

  3.   

    调试发现每次执行到typeofuser=(Typeofuser)session.get(Typeofuser.class, new Integer(did));这一局就执行不下去了,请问各位高手是咋回事啊
      

  4.   

    Hibernate映射文件和实体属性映射个数不对,或类型出错.
    看看你的实体Bean和映射文件映射是否正确,也可以把你的实体Bean和映射文件发上来让大家看看
    检查一下这两个文件Domain.Typeofuser.drivers,drivers.hbm.xml