Skip to content

Erupt MongoDB NoSQL 数据源

erupt-mongodb 模块为 Erupt 框架提供 MongoDB 数据源支持,可以像管理关系型数据库一样管理 MongoDB 集合数据,完全复用 Erupt 的注解体系。

引入方式

xml
<dependency>
  <groupId>xyz.erupt</groupId>
  <artifactId>erupt-data-mongodb</artifactId>
  <version>${erupt.version}</version>
</dependency>

配置

application.yml 中添加 MongoDB 连接配置:

yaml
spring:
  data:
    mongodb:
      uri: mongodb://username:password@localhost:27017/database

使用方式

将 JPA 实体的 @Entity + @Table 替换为 @Document,并必须追加 @EruptDataProcessor(EruptMongodbImpl.MONGODB_PROCESS) 声明数据源处理器,其余 Erupt 注解保持不变:

java
import xyz.erupt.core.annotation.EruptDataProcessor;
import xyz.erupt.mongodb.impl.EruptMongodbImpl;

@Erupt(name = "文章管理")
@EruptDataProcessor(EruptMongodbImpl.MONGODB_PROCESS)
@Document(collection = "articles")
public class Article {

    @Id
    @EruptField
    private String id;

    @EruptField(
        views = @View(title = "标题"),
        edit = @Edit(title = "标题", notNull = true)
    )
    private String title;

    @EruptField(
        views = @View(title = "内容"),
        edit = @Edit(title = "内容", type = EditType.TEXTAREA)
    )
    private String content;

    @EruptField(
        views = @View(title = "创建时间"),
        edit = @Edit(title = "创建时间", type = EditType.DATE)
    )
    private Date createTime;
}

必须声明数据源处理器

@EruptDataProcessor(EruptMongodbImpl.MONGODB_PROCESS) 不可省略。缺失时 DataProcessorManager 会回退到默认的 JPA 处理器,导致运行时报错。该常量值为 "mongodb",由 EruptMongodbImpl 在启动时注册。

TIP

MongoDB 文档的 _id 字段类型通常为 StringObjectId,对应 Java 类型使用 String 即可。

与 JPA 模块的区别

特性erupt-jpaerupt-mongodb
数据库类型关系型数据库MongoDB
主键注解@Id(jakarta.persistence)@Id(org.springframework.data)
实体注解@Entity + @Table@Document + @EruptDataProcessor(EruptMongodbImpl.MONGODB_PROCESS)
事务支持完整支持有限支持

贡献者

The avatar of contributor named as YuePeng YuePeng
The avatar of contributor named as Claude Opus 5 (1M context) Claude Opus 5 (1M context)

页面历史

Released under the Apache-2.0 License.