Skip to content

Raven-Source/raven-mongodb-java

Repository files navigation

Security Status

目录

核心特性 | features

基于 mongodb-driver 的一些封装和增强,提供 orm 常用的数据库操作方法:

1. 默认支持基于数据库实现自增id。

2. 批量插入时,自动批量填充id。

3. 避免不同 entity 版本的 save 方法导致数据覆盖问题等。

4. 枚举对应的数值类型和字符串类型的支持。

5. 提供 EntityInterceptor 接口,针对 findinsertupdatedelete 等操作的预处理能力

6. 提供优雅的链式写法。

7. 提供同步操作和异步(reactive)操作方法。

目的是简化写法、提高开发效率,以及避免一些问题。

快速开始 | quick start

1. 添加依赖:

<dependencies>
    <!-- raven-mongodb start -->

    <dependency>
        <groupId>io.github.raven-source</groupId>
        <artifactId>raven-mongodb-spring-boot-starter</artifactId>
        <version>3.2.1</version>
    </dependency>

    <!-- mongodb end -->
</dependencies>

2. 配置文件:

mongodb.options.connString=mongodb://127.0.0.1:27017/?
mongodb.options.dbName=TestDB

3. 例如 SpringBoot 项目可以自定义个 Configuration 、实体对象、以及对应的 UserRepository

@FieldNameConstants
@Getter
@Setter
public class Orders implements AutoIncr<Long> {

    @BsonId
    private Long id;

    private Long uid;

    private Long itemsId;

    private String name;

    private Boolean isPay = Boolean.FALSE;

    private BigDecimal price;

    private Status status;

}

@Repository
public interface OrdersRepository extends MongoRepository<Orders, Long> {
}

@SpringBootApplication
@EnableMongoRepositories(basePackages = "org.demo.repository")
@EnableConfigurationProperties
public class Application {

    public static void main(String[] args) {

        SpringApplication springApplication = new SpringApplication(Application.class);
        springApplication.run(args);

    }
}

4. 开始查询

Orders orders;
// 根据id查询
orders = ordersRepository.findOne(1L);

// 根据条件查询
orders = ordersRepository.findOne(
        // FilterBuilder<Orders>
        f -> f
            .eq(Fields.status, Status.Normal)
            .gt(Fields.price, 9.0)
);

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages