22 lines
933 B
Java
22 lines
933 B
Java
package com.baiyue.lastleg.mapper;
|
|
|
|
import org.apache.ibatis.annotations.Insert;
|
|
import org.apache.ibatis.annotations.Mapper;
|
|
import org.apache.ibatis.annotations.Options;
|
|
import org.apache.ibatis.annotations.Param;
|
|
import org.apache.ibatis.annotations.Select;
|
|
|
|
/** 本服务业务编号序列,更新与读取必须处于同一事务连接。 */
|
|
@Mapper
|
|
public interface DocumentSequenceMapper {
|
|
/** 唯一序列键原子递增,并在连接内保存本次分配值。 */
|
|
@Insert("INSERT INTO ll_document_sequence(sequence_key,current_value) VALUES(#{key},LAST_INSERT_ID(1)) "
|
|
+ "ON DUPLICATE KEY UPDATE current_value=LAST_INSERT_ID(current_value+1)")
|
|
int allocate(@Param("key") String key);
|
|
|
|
/** 禁用一级和二级缓存,返回本事务刚刚分配的值。 */
|
|
@Select("SELECT LAST_INSERT_ID()")
|
|
@Options(useCache=false, flushCache=Options.FlushCachePolicy.TRUE)
|
|
Long allocatedValue();
|
|
}
|