springboot集成ArangoDB

文章介绍了如何使用ArangoDB-spring-boot-starter进行集成,包括导入依赖、配置数据库连接信息、绑定实体类、定义DAO接口以及解决可能遇到的问题,如MyBatis的冲突和Bean的创建。
摘要由CSDN通过智能技术生成

最近用到了ArangoDB,但是网上使用arangodb-spring-boot-starter进行集成的demo比较少,但是试验下来是最便捷最简单的方式。记录一下:

1.导入依赖

<dependency>
   <groupId>com.arangodb</groupId>
   <artifactId>arangodb-spring-boot-starter</artifactId>
   <version>2.3.3.RELEASE</version>
</dependency>

2.添加配置

spring:
  data:
    arangodb:
      hosts:
        - ip:port  #集合形式,可以配置多个
      user: root   #用户名
      password: password #密码
      database: database  #指定的数据库

3,绑定实体

@Document("entity")
@Data
public class Entity {

    @ArangoId
    private String id;

    @Field("_key")
    private String key;

    @Field("return_name")
    private String returnName;

    private String name;

    @Field("format_name")
    private String formatName;

    @Field("format_names")
    private List<String> formatNames;

    private String label;

    private List<String> labels;

    private Integer status;

    @Field("create_time")
    private long createTime;

    @Field("update_time")
    private long updateTime;

}

@Document绑定实体和集合,@Field可以将集合中属性名和实体类属性名不一致的属性进行绑定,@ArangoId可以指定接收id。

4.绑定DAO

@Repository
public interface EntityDao extends ArangoRepository<Entity, String> {

    /**
     * 通过key获取实体对象
     *
     * @param key 对象key
     * @return 实体对象
     */
    @Query("FOR doc IN entity FILTER doc._key == @key RETURN doc")
    Entity findByKey(String key);
}

ArangoRepository内部其实已经实现了一些基本操作,如果想自定义功能方法,可以采用如上方式绑定AQL语句和自定义方法,类似Mybatis,不过这里使用的@作为占位符。

5.定义一个controller运行,并模拟请求,结果和预想的一样。

  • 可能出现的问题一:当同时存在arango和其他数据库DAO层接口时,如果arango接口放在mapper包下,会被mybatis接管,使定义的arangoRepository接口无法执行AQL,此时会报错该接口没有绑定的SQL。
  • 可能出现的问题而:将arangoRepository接口移出mapper层后,项目启动提示没有我们定义的arangoRepository接口的bean;
  • 以上两种问题的解决方式:启动类或者配置类上添加@EnableArangoRepositories注解,最好在注解属性值中注明basePackages。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值