| @Data |
| public class User { |
| @TableId(type = IdType.ASSIGN_ID) |
| private Long id; |
| private String name; |
| private Integer age; |
| private String email; |
| } |
| @Mapper |
| public interface UserMapper extends BaseMapper<User> { |
| |
| } |
| @Service |
| public class UserService extends ServiceImpl<UserMapper, User> { |
| |
| } |
| @Slf4j |
| @Component |
| public class CustomIdGenerator implements IdentifierGenerator { |
| |
| private final AtomicLong al = new AtomicLong(1); |
| |
| @Override |
| public Long nextId(Object entity) { |
| |
| String bizKey = entity.getClass().getName(); |
| log.info("bizKey:{}", bizKey); |
| MetaObject metaObject = SystemMetaObject.forObject(entity); |
| String name = (String) metaObject.getValue("name"); |
| final long id = al.getAndAdd(1); |
| log.info("为{}生成主键值->:{}", name, id); |
| return id; |
| } |
| } |
| @Test |
| public void test() { |
| User user = new User(); |
| user.setName("靓仔"); |
| user.setAge(18); |
| userMapper.insert(user); |
| Assertions.assertEquals(Long.valueOf(1L), user.getId()); |
| } |
| |
| |
| 为靓仔生成主键值->:1 |
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术