2 lichengji45 lichengji45 于 2014.11.10 15:09 提问

spring问题,事务提交阶段显示主键ID为0,插入数据库失败

struts2+hibernate4创建了一个注册系统,本来没问题的,但是整合加入spring之后在注册报空指针异常,在事务提交阶段取到的userId为0.感觉就是在new user()那里出问题,但是一直找不到问题根源,困扰好久,*.hbm.xml,实体类都没问题,就是事务提交主键ID老是提示为0,怎么解决CSDN移动问答

实体类文件
package com.chengji.ssh.beans;

public class User {
private String username;

private String password;

private int gender;
private int userId;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getGender() {
return gender;
}
public void setGender(int gender) {
this.gender = gender;
}
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
}
*.hbm.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">






not-null="true" length="16">
not-null="true" length="16" />
length="1" />

1个回答

liuqi2577252
liuqi2577252   2014.11.10 16:01

页面上的代码是什么样的呢,userid那个标签的name写对了么,有对应的value么

lichengji45
lichengji45 谢谢您的回答,问题已解决,是hibernate4出现了不兼容问题
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
XA: 事务和两阶段提交
事务和两阶段提交,三阶段提交协议(有限状态自动机) •1 事务的ACID   事务是保证数据库从一个一致性的状态永久地变成另外一个一致性状态的根本,其中,ACID是事务的基本特性。   A是Atomicity,原子性。一个事务往往涉及到许多的子操作,原子性则保证这些子操作要么都做,要么都不做,而不至于出现事务的部分操 作成功,而另外一部分操作没有成功。如果事务在执行的过程中发生错误,那
事务与两阶段提交
事务 事务是保证数据库从一个一致性的状态永久性地变成另一个一致性状态的根基 ACID ACID是事务基本特性: A是Atomicity,原子性。一个事务往往涉及到许多的子操作,原子性则保证这些子操作要么都做,要么都不做,不能出现部分操作成功,而另外一部分操作失败情形,基于此原则,如果事务在执行的中发生异常,那么数据库将回滚到事务发生之前的状态。 C是Consistency,一致性。一
SpringMVC+JdbcTemplate实现事务管理(插入操作需要返回自增字段)
将Service层交给事务去管理,beans.xml配置如下:            class="org.springframework.jdbc.datasource.DataSourceTransactionManager">                              如果需要返回自增字段,插入过程如下: public int
详解数据库集群的分布式事务、两阶段提交协议、三阶提交协议
原文链接:http://blog.jobbole.com/95632/ 随着大型网站的各种高并发访问、海量数据处理等场景越来越多,如何实现网站的高可用、易伸缩、可扩展、安全等目标就显得越来越重要。 为了解决这样一系列问题,大型网站的架构也在不断发展。提高大型网站的高可用架构,不得不提的就是分布式。在《分布式系统的一致性探讨》一文中主要介绍了分布式系统中存在的一致性问题。本文将简单介
面试问题(分布式事务除两阶段提交外的其他解决方案)
前言最近很久没有写博客了,一方面是因为公司事情最近比较忙,另外一方面是因为在进行 CAP 的下一阶段的开发工作,不过目前已经告一段落了。接下来还是开始我们今天的话题,说说分布式事务,或者说是我眼中的分布式事务,因为每个人可能对其的理解都不一样。分布式事务是企业集成中的一个技术难点,也是每一个分布式系统架构中都会涉及到的一个东西,特别是在微服务架构中,几乎可以说是无法避免,本文就分布式事务来简单聊一...
如何在数据库事务提交成功后进行异步操作
问题 业务场景 业务需求上经常会有一些边缘操作,比如主流程操作A:用户报名课程操作入库,边缘操作B:发送邮件或短信通知。 业务要求 操作A操作数据库失败后,事务回滚,那么操作B不能执行。 操作A执行成功后,操作B也必须执行成功 如何实现 普通的执行A,之后执行B,是可以满足要求1,对于要求2通常需要设计补偿的操作 一般边缘的操作,通常会设置成为异步的,以
分布式事务控制分段提交
1.XA XA是由X/Open组织提出的分布式事务的规范。XA规范主要定义了(全局)事务管理器(Transaction Manager)和(局部)资源管理器(Resource Manager)之间的接口。XA接口是双向的系统接口,在事务管理器(Transaction Manager)以及一个或多个资源管理器(Resource Manager)之间形成通信桥梁。XA之所以需要引入事务管理器
得到刚刚插入数据库数据的主键ID
实例1:insert  into dbo.RoomType(表名)(TypeName,Price,AddBed,BedPrice,Remark)  output inserted.ID  values('kkk',321,1,25,'oooo') 实例2: insert into dbo.RoomType(表名)(TypeName,Price,AddBed,BedPrice,Remark)  
分布式事务两阶段提交(2PC)的思考
关于分布式事务的设计,我们一直在使用两阶段提交(2PC)作为标准的流程。但是有必要从本质上理解为什么需要两阶段提交。 首先我们要清楚事务的流程是什么样的,一个事务最基本的流程为:读写操作,redo/undo log,写数据库表。也就是说在真正在数据库表之前,要有redo/undo log操作。在传统的分布式事务设计中,redo/undo log放在两阶段提交的第一阶段中,如果第一阶段成功
mysql insert一条记录(事务提交之前)怎样返回创建记录的主键id,last_insert_id(),selectkey && <select> 标签属性
mysql insert一条记录后怎样返回创建记录的主键id,last_insert_id(),selectkey mysql插入数据后返回自增ID的方法   mysql和oracle插入的时候有一个很大的区别是,oracle支持序列做id,mysql本身有一个列可以做自增长字段,mysql在插入一条数据后,如何能获得到这个自增id的值呢?   方法一:是使用last_i