umbrella
发贴: 20
积分: 0
|
于 2004-08-21 10:35
错误信息:
22:48:33,476 ERROR BasicPropertyAccessor:60 - IllegalArgumentException in class: hibernate.Message, setter method of property: id
22:48:33,486 ERROR BasicPropertyAccessor:64 - expected type: int, actual value: java.lang.String
net.sf.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter of hibernate.Message.id
at net.sf.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:68)
at net.sf.hibernate.persister.AbstractEntityPersister.setIdentifier(AbstractEntityPersister.java:330)
at net.sf.hibernate.impl.SessionImpl.doSave(SessionImpl.java:826)
at net.sf.hibernate.impl.SessionImpl.saveWithGeneratedIdentifier(SessionImpl.java:761)
at net.sf.hibernate.impl.SessionImpl.save(SessionImpl.java:720)
at hibernate.Hello.main(Hello.java:44)
Caused by: java.lang.IllegalArgumentException: argument type mismatch
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:324)
at net.sf.hibernate.property.BasicPropertyAccessor$BasicSetter.set(BasicPropertyAccessor.java:38)
... 5 more
Exception in thread "main"
谁有好的hibernate的文章或者简单的例子。
Message类:
package hibernate;
import java.io.Serializable;
/** * @author getdown * @version 1.0 */
public class Message implements Serializable { private int id; private String text; //定义一个简单链表 指向另外的一个Message public Message() {}
public Message(int id) { this.id = id; }
public Message(String text) { this.text = text; }
public Message(int id, String text) { this.id = id; this.text = text; }
public int getId() { return id; }
private void setId(int id) { this.id = id; }
public String getText() { return text; }
public void setText(String text) { this.text = text; }
}
Hello类:
package hibernate;
import net.sf.hibernate.cfg.Configuration; import net.sf.hibernate.SessionFactory; import net.sf.hibernate.tool.hbm2ddl.SchemaExport; import net.sf.hibernate.Session; import net.sf.hibernate.Query; import net.sf.hibernate.Hibernate; import net.sf.hibernate.type.LongType; import net.sf.hibernate.Transaction;
/** * @author getdown * @version 1.0 */
public class Hello { public Hello() { }
public static void main(String[] args) throws Exception { Configuration cfg = new Configuration().addClass(Message.class);
/** 顾名思义 构建表。。。第一次运行的时候运行下面语句可以在数据库生成表 * 之后可以把下面这句去掉 * */ // new SchemaExport(cfg).cr eate(true, true);
//先生成sessionFactory SessionFactory sessions = cfg.buildSessionFactory(); //再从sessionFactory得到一个session Session session = sessions.openSession(); //启动事务 Transaction tx = session.beginTransaction();
//开始对数据库的操作 /*----对数据库的创建操作--------*/ Message message = new Message("helloWorld"); //创建一条记录
session.save(message); //存入记录 session.flush(); //提交事务 tx.commit();
/*---对数据库的查询操作---------------*/ // Message message = new Message(); // Query q = session.createQuery("from Message as message where message.id=1"); // message = (Message) q.list().get(0); // message.getNextMessage().setText("helloNext"); // session.flush(); // session.close(); // Long id = new Long(1); // Message message = (Message) session.find("from Message as message where message.id=?", id, Hibernate.LONG).get(0); // System.out.println(message.getText());
// /*-------事务的处理----------------*/ // try { // Message message = new Message("hello"); // session.save(message); // session.flush(); // message = new Message("hello"); // session.save(message); // session.flush(); // tx.commit(); // } // catch (HibernateException ex) { // tx.rollback(); // }
/*-------添加1000条记录时间--------------*/ // long start = System.currentTimeMillis(); // for(int i = 0; i < 1000; i ++) { // Message message = new Message("hello"); // session.save(message); // session.flush(); // } // tx.commit(); // long end = System.currentTimeMillis(); // System.out.println("添加1000条记录时间---" + (end-start)/1000 + "s");
session.close();
}
}
xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 2.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd"> <hibernate-mapping>
<class name="hibernate.Message" table="Messages" >
<id name="id" column="MESSAGE_ID" > <generator class="uuid.hex"/> </id>
<property name="text" type="string"> <column name="TEXT" length="100" not-null="true" /> </property>
</class> </hibernate-mapping>
|