org.hibernate.PropertyNotFoundException: Could not find a setter for property id in class
请高手耐心分析下,小B感激不尽!
以下是异常信息:
org.hibernate.PropertyNotFoundException: Could not find a setter for property id in class com.gdms.domain.Messages
org.hibernate.property.BasicPropertyAccessor.createSetter(BasicPropertyAccessor.java:156)
org.hibernate.property.BasicPropertyAccessor.getSetter(BasicPropertyAccessor.java:150)
org.hibernate.mapping.Property.getSetter(Property.java:245)
org.hibernate.tuple.PojoTuplizer.buildPropertySetter(PojoTuplizer.java:241)
org.hibernate.tuple.AbstractTuplizer.<init>(AbstractTuplizer.java:55)
org.hibernate.tuple.PojoTuplizer.<init>(PojoTuplizer.java:54)
org.hibernate.tuple.TuplizerLookup.create(TuplizerLookup.java:47)
org.hibernate.tuple.EntityMetamodel.<init>(EntityMetamodel.java:218)
org.hibernate.persister.entity.BasicEntityPersister.<init>(BasicEntityPersister.java:400)
org.hibernate.persister.entity.SingleTableEntityPersister.<init>(SingleTableEntityPersister.java:104)
org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55)
org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:211)
org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1005)
com.gdms.dao.hibernate.HibernateUtil.<clinit>(HibernateUtil.java:15)
com.gdms.web.struts.action.LoginAction.execute(LoginAction.java:47)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:419)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:224)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1194)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
com.gdms.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:66)
Messages类:
package com.gdms.domain;
import java.util.Random;
//import java.util.Random;
public class Messages implements java.io.Serializable {
// Fields
private static final long serialVersionUID = 1L;
private String id;
private String title;
private String name;
private String mail;
private String content;
private String times;
// 留言时间
private Random r;
/** default constructor */
public Messages() {
}
/** full constructor */
public Messages(String id, String title, String name, String mail,
String times, String content) {
this.id = id;
this.title = title;
this.name = name;
this.mail = mail;
this.times = times;
this.content = content;
}
public String getId() {
return id;
}
public void setId() {
while (true) {
r = new Random();
int x = r.nextInt(9999);
if (x > 1000) {
this.id = "4" + x;
break;
}
}
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getMail() {
return mail;
}
public void setMail(String mail) {
this.mail = mail;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getTimes() {
return times;
}
public void setTimes() {
java.util.Calendar cl = java.util.Calendar.getInstance();
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
this.times = sdf.format(cl.getTime());
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
以下是Message.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.gdms.domain.Messages" table="messages">
<id name="id" type="string" >
<column name="id" length="32" />
<generator class="identity" />
</id>
<property name="title" type="string">
<column name="title" length="50" />
</property>
<property name="name" type="string">
<column name="name" length="20" />
</property>
<property name="mail" type="string">
<column name="mail" length="20" />
</property>
<property name="times" type="string">
<column name="times" length="50" />
</property>
<property name="content" type="string">
<column name="content" length="200" />
</property>
</class>
</hibernate-mapping>