Caused by: org.hibernate.PropertyAccessException: IllegalArgumentException occurred calling getter of com.chnstone.crm.dm.teacher.model.Assistant.id
at org.hibernate.property.BasicPropertyAccessor$BasicGetter.get(BasicPropertyAccessor.java:171)
at org.hibernate.tuple.entity.AbstractEntityTuplizer.getIdentifier(AbstractEntityTuplizer.java:183)
at org.hibernate.persister.entity.AbstractEntityPersister.getIdentifier(AbstractEntityPersister.java:3591)
at org.hibernate.persister.entity.AbstractEntityPersister.isTransient(AbstractEntityPersister.java:3307)
at org.hibernate.engine.ForeignKeys.isTransient(ForeignKeys.java:181)
at org.hibernate.event.def.AbstractSaveEventListener.getEntityState(AbstractSaveEventListener.java:512)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:80)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:507)
at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:499)
at org.hibernate.engine.CascadingAction$5.cascade(CascadingAction.java:218)
at org.hibernate.engine.Cascade.cascadeToOne(Cascade.java:268)
at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:216)
at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:169)
at org.hibernate.engine.Cascade.cascadeCollectionElements(Cascade.java:296)
at org.hibernate.engine.Cascade.cascadeCollection(Cascade.java:242)
at org.hibernate.engine.Cascade.cascadeAssociation(Cascade.java:219)
at org.hibernate.engine.Cascade.cascadeProperty(Cascade.java:169)
at org.hibernate.engine.Cascade.cascade(Cascade.java:130)
at org.hibernate.event.def.AbstractSaveEventListener.cascadeAfterSave(AbstractSaveEventListener.java:456)
at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:334)
at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:181)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:121)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:187)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:172)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.performSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:94)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
at org.hibernate.impl.SessionImpl.fireSaveOrUpdate(SessionImpl.java:507)
at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:499)
at org.hibernate.impl.SessionImpl.saveOrUpdate(SessionImpl.java:495)
at org.springframework.orm.hibernate3.HibernateTemplate$16.doInHibernate(HibernateTemplate.java:751)
at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:419)
... 45 more
Caused by: java.lang.IllegalArgumentException: object is not an instance of declaring class
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.hibernate.property.BasicPropertyAccessor$BasicGetter.get(BasicPropertyAccessor.java:145)
... 76 more我2表关联添加时报错,请问什么原因

解决方案 »

  1.   

    属性没有get 和 set方法,检查下
    com.chnstone.crm.dm.teacher.model.Assistant.id
      

  2.   

    package com.chnstone.crm.dm.teacher.model;import com.chnstone.crm.dm.user.model.NoteAccessory;/**
     * Assistant entity. @author MyEclipse Persistence Tools
     */public class Assistant implements java.io.Serializable { // Fields private String id;
    private Teachers teachers;
    private String name;
    private String phone;
    private String mobilephone;
    private String email;
    private String msn;
    private String qq; // Constructors /** default constructor */
    public Assistant() {
    } /** minimal constructor */
    public Assistant(String name) {
    this.name = name;
    } /** full constructor */
    public Assistant(Teachers teachers, String name, String phone,
    String mobilephone, String email, String msn, String qq) {
    this.teachers = teachers;
    this.name = name;
    this.phone = phone;
    this.mobilephone = mobilephone;
    this.email = email;
    this.msn = msn;
    this.qq = qq;
    } // Property accessors public String getId() {
    return this.id;
    } public void setId(String id) {
    this.id = id;
    } public Teachers getTeachers() {
    return this.teachers;
    } public void setTeachers(Teachers teachers) {
    this.teachers = teachers;
    } public String getName() {
    return this.name;
    } public void setName(String name) {
    this.name = name;
    } public String getPhone() {
    return this.phone;
    } public void setPhone(String phone) {
    this.phone = phone;
    } public String getMobilephone() {
    return this.mobilephone;
    } public void setMobilephone(String mobilephone) {
    this.mobilephone = mobilephone;
    } public String getEmail() {
    return this.email;
    } public void setEmail(String email) {
    this.email = email;
    } public String getMsn() {
    return this.msn;
    } public void setMsn(String msn) {
    this.msn = msn;
    } public String getQq() {
    return this.qq;
    } public void setQq(String qq) {
    this.qq = qq;
    }

    public Assistant toPojo() {
    // TODO Auto-generated method stub
    Assistant pojo = new Assistant();
    pojo.setId(getId());
    pojo.setName(getName());
    pojo.setPhone(getPhone());
    pojo.setMobilephone(getMobilephone());
    pojo.setQq(getQq());
    pojo.setMsn(getMsn());
    pojo.setEmail(getEmail());
    return pojo;
    }}
      

  3.   

      贴出你添加的javaBean的hbm.xml文件
      级联添加可能需要配置一些属性!!!  具体的我忘记了~~~
      

  4.   

    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <!-- 
        Mapping file autogenerated by MyEclipse Persistence Tools
    -->
    <hibernate-mapping package="com.chnstone.crm.dm.teacher.model">
        <class name="Assistant" table="ASSISTANT_" schema="CHNSTONE_CRM_WX_21">
            <id name="id" type="string">
                <column name="ID_"  />
                <generator class="uuid" />
            </id>
            <many-to-one name="teachers" cascade="save-update" column="FK_TACHER" />
            <property name="name" type="string">
                <column name="NAME_"   not-null="true" />
            </property>
            <property name="phone" type="string">
                <column name="PHONE_"  />
            </property>
            <property name="mobilephone" type="string">
                <column name="MOBILEPHONE_"  />
            </property>
            <property name="email" type="string">
                <column name="EMAIL_"   />
            </property>
            <property name="msn" type="string">
                <column name="MSN_"  />
            </property>
            <property name="qq" type="string">
                <column name="QQ" length="4000" />
            </property>
        </class>
    </hibernate-mapping><?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <!-- 
        Mapping file autogenerated by MyEclipse Persistence Tools
    -->
    <hibernate-mapping package="com.chnstone.crm.dm.teacher.model">
        <class name="Teachers" table="TEACHERS_" schema="CHNSTONE_CRM_WX_21">
            <id name="id" type="string">
                <column name="ID_"   />
                <generator class="uuid" />
            </id>
            <property name="name" type="string">
                <column name="NAME_"   not-null="true" />
            </property>
            <property name="phone" type="string">
                <column name="PHONE_"   />
            </property>
            <property name="mobilephone" type="string">
                <column name="MOBILEPHONE_"  />
            </property>
            <property name="email" type="string">
                <column name="EMAIL_"   />
            </property>
            <property name="msn" type="string">
                <column name="MSN_"  />
            </property>
            <property name="qq" type="string">
                <column name="QQ_"   />
            </property>
            <property name="interoduction" type="string">
                <column name="INTERODUCTION_"  />
            </property>
            <property name="age" type="string">
                <column name="AGE_"   />
            </property>
            <property name="sex" type="string">
                <column name="SEX_"   />
            </property>
            <property name="price" type="string">
                <column name="PRICE_"   />
            </property>
            <property name="address" type="string">
                <column name="ADDRESS_"  />
            </property>
            <property name="coures" type="string">
                <column name="COURES_"  />
            </property>
            <property name="note" type="string">
                <column name="NOTE_"  />
            </property>
            <set name="assistants"   cascade="all-delete-orphan" order-by="ID_ desc" >
                <key column="FK_TACHER"  />
                <one-to-many class="Assistant" />
            </set>
        </class>
    </hibernate-mapping>
      

  5.   

    貌似这种级联关系只需要配置一端就行,没必要一端配置<one-to-many>.另一端配置<many-to-one>