package cn.palmte.work.service; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.persistence.Query; /** * @author Yuanping Zhang * @date 2022/08/08 */ @Service public class NumSeqService { private static final Logger logger = LoggerFactory.getLogger(NumSeqService.class); @Autowired @PersistenceContext private EntityManager entityManager; public String generate() { String prefix = "P"; String querySql = "select num from num_seq limit 1"; Query nativeQuery = entityManager.createNativeQuery(querySql); int num = (Integer)nativeQuery.getSingleResult(); String counterString = String.format("%05d", num++); entityManager.createNativeQuery("update num_seq set num = " + num); return prefix + counterString; } }