如何在Sping Boot Java中使用@Indexed annotation中的@Value

egdjgwm8  于 2023-08-02  发布在  Java
关注(0)|答案(1)|浏览(124)

我正在为实体类配置mongo TTL。这是我的代码

@Document(collection = "Test")
public class Test{

    @Id
    private String id;

    @Indexed(name = "expire_at", expireAfter = "#{${mongo.data.expire.days}}")
    private Instant expireAt;
}

字符串
在我的财产档案里,我已经给出了

mongo:
    data:
        expire:
            days: 10d


我试过给"#{${mongo.data.expire.days}}""#{@Value(mongo.data.expire.days)}""${mongo.data.expire.days}",但没有任何工作。
有人帮我一下。

nbewdwxp

nbewdwxp1#

正如我所知道的,没有Spring的方式来做这件事。如果我没有弄错的话-JPA实体不是Spring bean,你对此无能为力。
另外,如果我没有弄错的话,注解参数应该是编译时常量。
我很确定可能有一种方法可以破解它,但不确定这是否是一种简单的方法来理解和支持以后。
也可以考虑将文档和索引的配置方式从代码转移到https://mongock.io/或类似的迁移工具。x1c 0d1x的数据
也许稍后会更容易理解,您的索引配置在 migration 工具中描述

相关问题