package com.usemodj.jpetstore.service;
import org.apache.ibatis.session.SqlSession;
import org.apache.log4j.Logger;
import com.usemodj.jpetstore.domain.Sequence;
import com.usemodj.jpetstore.mappers.SequenceMapper;
public class SequenceService {
private static Logger logger = Logger.getLogger( SequenceService.class);
public synchronized int getNextId(SqlSession sqlSession, String name) {
SequenceMapper sMapper = sqlSession.getMapper( SequenceMapper.class);
Integer nextId = null;
try {
nextId = sMapper.selectNextId( name);
if( null == nextId){
nextId = new Integer(1000); //initial value
Sequence sequence = new Sequence( name, nextId.intValue());
sMapper.insertSequence( sequence);
}else {
//Update Sequence nextid column
sMapper.updateSequence( new Sequence(name, nextId.intValue() + 1));
}
} catch (Exception e) {
//e.printStackTrace();
logger.error("SequenceService.getNextId() Exception: " + e.getMessage());
}
return nextId;
}
}