hibernate日期类型转换问题?

songfuqiang 2008-06-05 03:30:38
public class Member implements java.io.Serializable {
private static final long serialVersionUID = 1L;
private Integer memberId;
private String memberName;
private String password;
private Integer usableRoleId;
private String telePhone;
private String mobilePhone;
private String address;
private String email;
private String homePage;
private Integer loginNumber;
private String isEnabled;
private java.sql.Timestamp buildDate;
private String portrait;
private java.sql.Timestamp lastLoginDate;
private Set articleComments = new HashSet(0);
private Set products = new HashSet(0);
private Set news = new HashSet(0);
private Set articles = new HashSet(0);
private Set productComments = new HashSet(0);
private Set usableRoles = new HashSet(0);

// Property accessors

public Integer getMemberId() {
return this.memberId;
}

public void setMemberId(Integer memberId) {
this.memberId = memberId;
}

public String getMemberName() {
return this.memberName;
}

public void setMemberName(String memberName) {
this.memberName = memberName;
}

public String getPassword() {
return this.password;
}

public void setPassword(String password) {
this.password = password;
}

public Integer getUsableRoleId() {
return this.usableRoleId;
}

public void setUsableRoleId(Integer usableRoleId) {
this.usableRoleId = usableRoleId;
}

public String getTelePhone() {
return this.telePhone;
}

public void setTelePhone(String telePhone) {
this.telePhone = telePhone;
}

public String getMobilePhone() {
return this.mobilePhone;
}

public void setMobilePhone(String mobilePhone) {
this.mobilePhone = mobilePhone;
}

public String getAddress() {
return this.address;
}

public void setAddress(String address) {
this.address = address;
}

public String getEmail() {
return this.email;
}

public void setEmail(String email) {
this.email = email;
}

public String getHomePage() {
return this.homePage;
}

public void setHomePage(String homePage) {
this.homePage = homePage;
}

public Integer getLoginNumber() {
return this.loginNumber;
}

public void setLoginNumber(Integer loginNumber) {
this.loginNumber = loginNumber;
}

public String getIsEnabled() {
return this.isEnabled;
}

public void setIsEnabled(String isEnabled) {
this.isEnabled = isEnabled;
}

public java.sql.Timestamp getBuildDate() {
return this.buildDate;
}

public void setBuildDate(String buildDate) {
this.buildDate = new Timestamp(System.currentTimeMillis());
}


public String getPortrait() {
return this.portrait;
}

public void setPortrait(String portrait) {
this.portrait = portrait;
}

public java.sql.Timestamp getLastLoginDate() {
return this.lastLoginDate;
}

public void setLastLoginDate(String lastLoginDate) {

this.lastLoginDate=java.sql.Timestamp.valueOf(lastLoginDate);
}

public Set getArticleComments() {
return this.articleComments;
}

public void setArticleComments(Set articleComments) {
this.articleComments = articleComments;
}

public Set getProducts() {
return this.products;
}

public void setProducts(Set products) {
this.products = products;
}

public Set getNews() {
return this.news;
}

public void setNews(Set news) {
this.news = news;
}

public Set getArticles() {
return this.articles;
}

public void setArticles(Set articles) {
this.articles = articles;
}

public Set getProductComments() {
return this.productComments;
}

public void setProductComments(Set productComments) {
this.productComments = productComments;
}

public Set getUsableRoles() {
return this.usableRoles;
}

public void setUsableRoles(Set usableRoles) {
this.usableRoles = usableRoles;
}
}

...全文
941 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
songfuqiang 2008-06-11
  • 打赏
  • 举报
回复
除数据库外全部设为字符串.就可以插入记录了!
ee4456 2008-06-06
  • 打赏
  • 举报
回复
2008-12-12 12:25:25.0...这是字符串,错误提示告诉你是错误的参数类型...
你要不就把这个字符串先转成timestamp,再弄吧..
bufeng711 2008-06-06
  • 打赏
  • 举报
回复
你传个 new java.util.Date() 就行了 杂要那么传
yami251139 2008-06-05
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 KKK2007 的回复:]
member.setLastLoginDate("2008-12-12 12:25:25.0");
你的属性里是timestamp,这里传的是字符串,所以类型不匹配
[/Quote]
j觉得是这个问题
KKK2007 2008-06-05
  • 打赏
  • 举报
回复
type最好用hibernate类型
Shine_Panda 2008-06-05
  • 打赏
  • 举报
回复
<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>

试下。。。。
KKK2007 2008-06-05
  • 打赏
  • 举报
回复
member.setLastLoginDate("2008-12-12 12:25:25.0");
你的属性里是timestamp,这里传的是字符串,所以类型不匹配
heting1024 2008-06-05
  • 打赏
  • 举报
回复
导入的Date类型有sql和util两种,可能是这个问题吧.
songfuqiang 2008-06-05
  • 打赏
  • 举报
回复
只看红色,和错误部分就知道是怎么回事了
songfuqiang 2008-06-05
  • 打赏
  • 举报
回复
报错是:
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"
songfuqiang 2008-06-05
  • 打赏
  • 举报
回复
接到上面的:
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();

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧