接到上面的:
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();
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();
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"
你的属性里是timestamp,这里传的是字符串,所以类型不匹配
<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> 试下。
你要不就把这个字符串先转成timestamp,再弄吧..