接到上面的:
hbm.xml文件
<?xml version="1.0"?>
<!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 - Hibernate Tools
-->
<hibernate-mapping>
    <class name="com.jgssdw.hbm.Member" table="member" schema="dbo" catalog="ssdw">
        <id name="memberId" type="java.lang.Integer">
            <column name="memberId" />
            <generator class="identity"></generator>
        </id>
        <property name="memberName" type="java.lang.String">
            <column name="memberName" length="20" />
        </property>
        <property name="password" type="java.lang.String">
            <column name="password" length="20" />
        </property>
        <property name="usableRoleId" type="java.lang.Integer">
            <column name="usableRoleId" />
        </property>
        <property name="telePhone" type="java.lang.String">
            <column name="telePhone" length="20" />
        </property>
        <property name="mobilePhone" type="java.lang.String">
            <column name="mobilePhone" length="20" />
        </property>
        <property name="address" type="java.lang.String">
            <column name="Address" length="50" />
        </property>
        <property name="email" type="java.lang.String">
            <column name="email" length="20" />
        </property>
        <property name="homePage" type="java.lang.String">
            <column name="homePage" length="20" />
        </property>
        <property name="loginNumber" type="java.lang.Integer">
            <column name="loginNumber" />
        </property>
        <property name="isEnabled" type="java.lang.String">
            <column name="isEnabled" length="5" />
        </property>
        <property name="buildDate" type="java.sql.Timestamp">
            <column name="buildDate" length="23" />
        </property>
        <property name="portrait" type="java.lang.String">
            <column name="portrait" length="50" />
        </property>
        <property name="lastLoginDate" type="java.sql.Timestamp">
            <column name="lastLoginDate" length="23" />
        </property>

        <set name="articleComments" inverse="true">
            <key>
                <column name="memberId" not-null="true" />
            </key>
            <one-to-many class="com.jgssdw.hbm.ArticleComment" />
        </set>
        <set name="products" inverse="true">
            <key>
                <column name="memberId" not-null="true" />
            </key>
            <one-to-many class="com.jgssdw.hbm.Product" />
        </set>
        <set name="news" inverse="true">
            <key>
                <column name="memberId" not-null="true" />
            </key>
            <one-to-many class="com.jgssdw.hbm.New" />
        </set>
        <set name="articles" inverse="true">
            <key>
                <column name="memberId" not-null="true" />
            </key>
            <one-to-many class="com.jgssdw.hbm.Article" />
        </set>
        <set name="productComments" inverse="true">
            <key>
                <column name="memberId" not-null="true" />
            </key>
            <one-to-many class="com.jgssdw.hbm.ProductComment" />
        </set>
        <set name="usableRoles" inverse="true">
            <key>
                <column name="memberId" />
            </key>
            <one-to-many class="com.jgssdw.hbm.UsableRole" />
        </set>
    </class>
</hibernate-mapping>
测试代码:
Session session=HibernateSessionFactory.getSession();
Transaction tran=session.beginTransaction();
Member member=new Member();
member.setAddress("address");
member.setHomePage("http://www.zgdsc.cn");
member.setIsEnabled("true");
member.setMemberId(new Integer(1));
member.setLastLoginDate("2008-12-12 12:25:25.0");
session.save(member);
tran.commit();

解决方案 »

  1.   

    报错是:
    org.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter of com.jgssdw.hbm.Member.lastLoginDate
    at org.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:104)
    at org.hibernate.tuple.AbstractEntityTuplizer.setPropertyValues(AbstractEntityTuplizer.java:330)
    at org.hibernate.tuple.PojoEntityTuplizer.setPropertyValues(PojoEntityTuplizer.java:188)
    at org.hibernate.persister.entity.AbstractEntityPersister.setPropertyValues(AbstractEntityPersister.java:3232)
    at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:253)
    at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:167)
    at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:101)
    at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:186)
    at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
    at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:175)
    at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
    at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
    at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:530)
    at org.hibernate.impl.SessionImpl.save(SessionImpl.java:518)
    at org.hibernate.impl.SessionImpl.save(SessionImpl.java:514)
    at com.jgssdw.member.service.TestDuration.main(TestDuration.java:20)
    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)
    ... 15 more
    Exception in thread "main" 
      

  2.   

    导入的Date类型有sql和util两种,可能是这个问题吧.
      

  3.   

     member.setLastLoginDate("2008-12-12 12:25:25.0");
    你的属性里是timestamp,这里传的是字符串,所以类型不匹配
      

  4.   

     <property name="buildDate" type="time"> 
                <column name="buildDate" length="23" /> 
            </property> 
            <property name="portrait" type="java.lang.String"> 
                <column name="portrait" length="50" /> 
            </property> 
            <property name="lastLoginDate" type="time"> 
                <column name="lastLoginDate" length="23" /> 
            </property> 试下。
      

  5.   

    你传个 new java.util.Date() 就行了 杂要那么传
      

  6.   

    2008-12-12 12:25:25.0...这是字符串,错误提示告诉你是错误的参数类型...
    你要不就把这个字符串先转成timestamp,再弄吧..