public synchronized long getDailyNextVal(String seqName, boolean needNew)
throws BusinessException {
long ret = 1L;
int nowDay = Calendar.getInstance().get(Calendar.DATE);
try {
SequenceHome home = (SequenceHome)
ControlRepository.getInstance().getControlInstance(Names.SEQUENCE);
Sequence seq = (Sequence) home.findByPrimaryKey(seqName);
if (nowDay != seq.getDay()) {
this.updateSequence(seq, seq.getStartby() + seq.getStep(), nowDay);
return seq.getStartby();
}
ret = seq.getSequenceNo();
this.updateSequence(seq, seq.getSequenceNo() + seq.getStep(), nowDay);
} catch (BusinessException e) {
if (needNew) {
// createSequence(seqName, 1, 2, true);
createSequence(seqName, 1, 1, true, nowDay);
} else {
log.error("sequence with name " + seqName + " not found", e);
e.setDetailInfo("sequence with name " + seqName + " not found");
throw e;
}
}
return ret;
}
throws BusinessException {
long ret = 1L;
int nowDay = Calendar.getInstance().get(Calendar.DATE);
try {
SequenceHome home = (SequenceHome)
ControlRepository.getInstance().getControlInstance(Names.SEQUENCE);
Sequence seq = (Sequence) home.findByPrimaryKey(seqName);
if (nowDay != seq.getDay()) {
this.updateSequence(seq, seq.getStartby() + seq.getStep(), nowDay);
return seq.getStartby();
}
ret = seq.getSequenceNo();
this.updateSequence(seq, seq.getSequenceNo() + seq.getStep(), nowDay);
} catch (BusinessException e) {
if (needNew) {
// createSequence(seqName, 1, 2, true);
createSequence(seqName, 1, 1, true, nowDay);
} else {
log.error("sequence with name " + seqName + " not found", e);
e.setDetailInfo("sequence with name " + seqName + " not found");
throw e;
}
}
return ret;
}
解决方案 »
- eclipse下程序运行没有问题,bat调生成的jar包不能运行
- 进程的互相控制
- 会汇编的请进!!!
- 【软件/程序发布】基于Java的听力大师体验(LMX, Listening Master eXperience)
- 求助:String b="123";和String c=new String("123");的区别!
- 急问:关于socket的问题!!
- 定义一个ArrayList<ArrayList> all = new ArrayList<ArrayList>();
- 一个很菜的线程问题
- JBuilder快捷键大搜集,来者有分
- 求购初、中级的JAVA入门书籍
- ZIP文件不能读取!!大家帮帮忙!!
- 哪位兄弟帮忙看下?这个程序运行不出来
你可能在生成的时候只是用的日期参与计算,如果再加上时间的话重复的可能性就很小了。
因为日期一天才变化一次,而时间时刻都在变化。
另外,这种事情最好还是放在数据库来做比较好