H2 完整迁移

概述

将项目数据层从 MongoDB 完整迁移到 H2 数据库,包括 entity 注解替换、repository 接口替换、schema 初始化补全。

迁移范围

Entity 层(5个需要修改)

使用 @MappedEntity + @BsonId + ObjectId 的 MongoDB entity 需要改为标准 JPA 注解:

Entity主键类型变更内容
UserObjectId改为 String id,去掉 BsonId
UserDeviceObjectId改为 String id,去掉 BsonId
UserPasswordObjectId改为 String id,去掉 BsonId
UserRefreshTokenObjectId改为 String id,去掉 BsonId
UserAccessTokenObjectId改为 String id,去掉 BsonId
UserUiaaDataObjectId改为 String id,去掉 BsonId
UserDataObjectId改为 String id,去掉 BsonId

Repository 层(5个需要修改)

Repository变更内容
UserRepository@MongoRepository -> @JdbcRepository,ObjectId -> String
UserDeviceRepository@MongoRepository -> @JdbcRepository,ObjectId -> String
UserPasswordRepository@MongoRepository -> @JdbcRepository,ObjectId -> String
UserUiaaDataRepository@MongoRepository -> @JdbcRepository,ObjectId -> String
UserDataRepository@MongoRepository -> @JdbcRepository,ObjectId -> String

Schema 初始化

H2SchemaInitializer 补全所有表的 DDL。

注意事项

  • 去掉所有 org.bson 相关 import
  • 主键统一改为 VARCHAR(36),使用 UUID 生成
  • 保持自定义查询方法不变,Micronaut Data JDBC 支持相同的方法命名约定