entity类set方法都是能够设置成功,然后返回的DTO类也是能够返回正确的字符串,就是用PL/SQL查看表的时候,表是没有更新。弄了一个下午,各种类,hibernate的配置文件也看过了。然后ID用的是本人建的一个sequence。
下面贴上部分代码:
POJO:
@Entity
public class RegisterPO {
private static Logger logger = Logger.getLogger(RegisterPO.class);
private static IPersistence ipS = Platform.getPersistence();
/**
* 用户注册
*/
public void register(Register register) {
TransManager tm = new TransManager();
try {
tm.begin();
Long register_id = ipS.getSequenceL(“register_id”);
register.setRegister_id(register_id);
ipS.save(register);
tm.commit();
} catch (Exception e) {
tm.rollback();
logger.error(e);
throw new YLZCBPException(e);
}
}
}
服务类:
@Entity
public class Register {
static Logger logger = Logger.getLogger(Register.class);
public String register(int hospitalId, int deptCode, int doctorNo,int regType, String appointmentDate, int timeFrameCode,
int scheduleId, int sourceCode, int waitNumber, int cardtype,int cardNo, String name, String idCard, String phone) {
com.register.entity.Register register = new com.register.entity.Register();
RegisterPO po = new RegisterPO();
RegisterDTO dto = new RegisterDTO();
try {
register.setHospitalId(hospitalId);
register.setAppointmentDate(appointmentDate);
register.setCardNo(cardNo);
register.setCardtype(cardtype);
register.setDeptCode(deptCode);
register.setDoctorNo(doctorNo);
register.setIdCard(idCard);
register.setName(name);
register.setPhone(phone);
register.setRegType(regType);
register.setScheduleId(scheduleId);
register.setSourceCode(sourceCode);
register.setTimeFrameCode(timeFrameCode);
register.setWaitNumber(waitNumber);
dto.setSuccess(1);
dto.setMessage(“预约成功”);
po.register(register);
} catch (YLZCBPException ye) {
logger.info(ye.getMessage());
} catch (Exception e) {
dto.setSuccess(2);
dto.setMessage(“预约失败”);
logger.error(e);
}
return ReaderSoapXmlOut.readerSoapXMlOut(dto.getColset(),
dto.getStructsList(), “”);
}
}
DTO:
@Entity
public class RegisterDTO extends BaseDTO {
@OutPara(index = 0, label = “能否成功”)
int success;
@OutPara(index = 1, label = “提示消息”)
String message;
public int getSuccess() {
return success;
}
public void setSuccess(int success) {
this.success = success;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
打印出的信息如下,就是提示我们能否成功。在服务类添加的。
message=”预约成功”
/>
现在就是能返回这个字符串,跟以前的效果一样。然后假如返回register.getXXX();这样是能获得到值的。也就是数据是放到实体类里面是成功的,现在就是没有进入到数据库。
以下这个是Register.hbm.xml的配置文件。就是hibernate的配置文件
没有提示错误信息。 就是数据加不进去。 麻烦大家帮看看,谢谢。 分数不多。希望大家能帮忙
解决方案
15
引用:
Quote: 引用:
搞不清楚现在想问什么,查询成功插入失败的话首先去检查事务的配置
主要的问题本人说一下吧。上面的确实太长了,一般人都会懒得看的。
就是
在XXX.hbm.xml文件里设置的这个属性,就是当前这张表的ID,没错吧。 然后column就是在数据库那边设置的当前表的primary key。然后本人就是提示”register” 标识符无效。把里面换成什么,就提示什么无效。当然,换的时候,在数据库那边的表也会跟着换。
那那个事务是在哪里配置呀。貌似是没有用到Spring
报错这个问题跟事务无关,看下你实体中的这个字段以及数据库中的名字及类型能否对应
20
假如单用hibernate的话,本人是这么干的。
5
数据库的id是不是设置自增长了?
CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明hibernate向Oracle里添加数据失败。查询数据能够成功!