这是hibernate的测试方法:
public void testHibernate() {
ContInfo ci = new ContInfo();
ci.setColKind("122");
Configuration cfg = new Configuration().configure("hibernate.cfg.xml");
SessionFactory sf = cfg.buildSessionFactory();
Session sess = sf.openSession();
Transaction t = sess.beginTransaction();
sess.save(ci);
t.commit();
sess.close();
}
其中ContInfo有个主键SN是通过native方法生成的,该方法可以成功插入。
但集成到spring,stuts时,使用extends HibernateDaoSupport,在action中用到save方法保存数据,但jsp页面上运行后就出错了。
原因是没有使用native生成主键,即没有执行一下这步:
Hibernate:
select
hibernate_sequence.nextval
from
dual
所以问题出来了,怎么让spring使用native方法,可能表达方式不一,总之也要让它在页面上自动生成主键插入数据!
public void testHibernate() {
ContInfo ci = new ContInfo();
ci.setColKind("122");
Configuration cfg = new Configuration().configure("hibernate.cfg.xml");
SessionFactory sf = cfg.buildSessionFactory();
Session sess = sf.openSession();
Transaction t = sess.beginTransaction();
sess.save(ci);
t.commit();
sess.close();
}
其中ContInfo有个主键SN是通过native方法生成的,该方法可以成功插入。
但集成到spring,stuts时,使用extends HibernateDaoSupport,在action中用到save方法保存数据,但jsp页面上运行后就出错了。
原因是没有使用native生成主键,即没有执行一下这步:
Hibernate:
select
hibernate_sequence.nextval
from
dual
所以问题出来了,怎么让spring使用native方法,可能表达方式不一,总之也要让它在页面上自动生成主键插入数据!
解决方案 »
- MyEclipse 和 ExtJs 整合,JSP无法提示代码
- Mysql,远程访问的问题,在线等,请前辈们指点,谢谢了
- 基于struts+hibernate请教分页问题
- 今天遇到很奇怪的问题
- 关于使用Hibernate进行动态表名映射
- J2EE调service层[如何在web程序中使用Socket并且在服务器启动跟随服务器启动]
- Java多线程问题
- EJB 依赖注入问题
- 遇到到的一些问题!大家都来看看,能回答几个算几个。
- 求教EJB客户端错误:javax.naming.NoInitialContextException?
- 请帮我解释下以下几种建立变量的区别
- struts2 没有默认加载的配置文件!
你这里用的是sequence,而native是根据底层数据库自动判断使用identity,sequence,或hilo中的一个。你不妨直接写成sequence。
但运行tomcat后,就出现了异常了:
Caused by: org.hibernate.MappingException: could not instantiate id generator
Caused by: org.hibernate.MappingException: Dialect does not support sequences
你的数据库Dialect写错了吧?你用的什么数据库?