现在有这样一个需求,每个员工都有个ID,还有一个工号,ID是Oracle的序列,每次自动加1,而工号是个字符串,总共长8位,前面都是0,后面是员工ID,比如员工ID为88,则其工号为00000088,
首先,员工的工号总是8位,前面都是0,为了解决这个问题,需要在其工号的set方法中添加逻辑,如果工号长度不够8为,前面加0,这个比较好解决:
下面就是解决工号获取序列的问题,先给出我的解决方案
首先,员工的工号总是8位,前面都是0,为了解决这个问题,需要在其工号的set方法中添加逻辑,如果工号长度不够8为,前面加0,这个比较好解决:
public void setJobNumber(String jobNumber) {
/*
* 由于需要获取长度,需要判断入参是否为空,防止空指针异常
*/
if(StringUtil.isNotEmpty(jobNumber)&&jobNumber.length()<Constant.JOB_NUMBER_LENGTH){
while(jobNumber.length()<Constant.JOB_NUMBER_LENGTH){
jobNumber="0"+jobNumber;
}
}
this.jobNumber = jobNumber;
}
下面就是解决工号获取序列的问题,先给出我的解决方案
Session session = getSession();
// session.merge(arg0)
Transaction tr = session.beginTransaction();
try {
session.save(user);
//员工工号绝对值取数据库中序列值
user.setJ