初学Hibernate,刚开始就受挫了,麻烦各位大侠帮忙。先介绍一下我的情况:
数据库:mysql 5.X
表:
| Table | Create Table+-------+------------------------------------
---------------------------------------------
| user | CREATE TABLE `user` (
`id` int(11) NOT NULL,
`username` varchar(200) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-------+------------------------------------
---------------------------------------------java文件:
public class User { private Long userId;
private String userName;
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}Hibernate文件: <class name="User" table="User">
<id name="userId" column="id" type="java.lang.Long" length="4">
</id>
<property name="userName" type="int" column="userName" />
</class>测试代码:
Session session = HibernateSessionFactory.currentSession();
Transaction transaction = session.beginTransaction();
User user = new User();
user.setUserName("ss");
user.setUserId(new Long(2));
session.save(user); transaction.commit();
出现错误:Hibernate: insert into User (userName, id) values (?, ?)
java.lang.ClassCastException
at org.hibernate.type.IntegerType.set(IntegerType.java:39)
at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:62)
at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:39)
at org.hibernate.persister.entity.BasicEntityPersister.dehydrate(BasicEntityPersister.java:1617)
at org.hibernate.persister.entity.BasicEntityPersister.dehydrate(BasicEntityPersister.java:1594)
at org.hibernate.persister.entity.BasicEntityPersister.insert(BasicEntityPersister.java:1850)
at org.hibernate.persister.entity.BasicEntityPersister.insert(BasicEntityPersister.java:2200)
at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:46)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:239)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:223)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:136)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:274)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:730)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:324)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:86)
at ttTest.main(ttTest.java:20)
Exception in thread "main" 谢谢各位能看看,小弟我到底是犯了什么毛病。谢谢!!!!!!!!!!
数据库:mysql 5.X
表:
| Table | Create Table+-------+------------------------------------
---------------------------------------------
| user | CREATE TABLE `user` (
`id` int(11) NOT NULL,
`username` varchar(200) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 |
+-------+------------------------------------
---------------------------------------------java文件:
public class User { private Long userId;
private String userName;
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}Hibernate文件: <class name="User" table="User">
<id name="userId" column="id" type="java.lang.Long" length="4">
</id>
<property name="userName" type="int" column="userName" />
</class>测试代码:
Session session = HibernateSessionFactory.currentSession();
Transaction transaction = session.beginTransaction();
User user = new User();
user.setUserName("ss");
user.setUserId(new Long(2));
session.save(user); transaction.commit();
出现错误:Hibernate: insert into User (userName, id) values (?, ?)
java.lang.ClassCastException
at org.hibernate.type.IntegerType.set(IntegerType.java:39)
at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:62)
at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:39)
at org.hibernate.persister.entity.BasicEntityPersister.dehydrate(BasicEntityPersister.java:1617)
at org.hibernate.persister.entity.BasicEntityPersister.dehydrate(BasicEntityPersister.java:1594)
at org.hibernate.persister.entity.BasicEntityPersister.insert(BasicEntityPersister.java:1850)
at org.hibernate.persister.entity.BasicEntityPersister.insert(BasicEntityPersister.java:2200)
at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:46)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:239)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:223)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:136)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:274)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:730)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:324)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:86)
at ttTest.main(ttTest.java:20)
Exception in thread "main" 谢谢各位能看看,小弟我到底是犯了什么毛病。谢谢!!!!!!!!!!
解决方案 »
- HibernateSessionFactory 麻烦你给我创造个session啊!!!
- Jquery 整合struts1.2 传参数的问题
- jfreechart 时间轴(X轴)如何自定义起止时间和间距?
- 关于iframe嵌套的问题(多个iframe)
- java mail 带附件的邮件提示javax.mail.AuthenticationFailedException,发布普通邮件没问题
- session记录的问题,大家帮帮忙
- <jsp:useBean ..... scope="session|page" ...... />中的scope引发的问题?!!
- struts2导出excel无法找到InputStream
- 怎么统计两个时间间间隔多少秒?例如:2004-1-1 12:00:00 到 2004-1-10 10:20:00
- 请问Apache和Tomcat有什么相同和不同之处?区别?
- JSP的问题,看看啊
- 这个问题都放了几天了,还是没有人能回答。这里没高人了?
<property name="userName" type="string" column="userName" />你的userName是 String ,不是int
是改成java.lang.String:)