我同时使用spring数据mongodb和elasticsearch,并实时同步它们。
我对这两种情况使用相同的spring实体,如下所示:
// imports and stuff
@Document(collection="something")
@org.springframework.data.elasticsearch.annotations.Document(indexName = "something")
public class MySomething {
// class definition...
这个很好用。。。我的问题是,我想用一个“快捷方式”注解替换elasticsearch注解的完全限定名,比如 @ElasticDocument
.
一种解决办法是复制 @Doucment
完全转换成一个新的注解,然后用新注解覆盖它的多个用法=>这将创建大量不必要的代码(考虑到我必须覆盖多个spring data elasticsearch配置类),这只是出于美观的原因!
还有更优雅的解决方案吗?涉及“重命名”的 @Document
或者为它创建快捷方式注解?
我似乎想不出一个合适的解决办法 @interface
多态性在java中是不可能的。
1条答案
按热度按时间vuktfyat1#
不确定这是不是正确的答案,但是你考虑过看一下spring的答案吗
@AliasFor
注解?它可能就是你要找的。例如,您可以尝试这样的方法,看看效果如何:注意,我还没有测试上面的代码,但是你可以试试看它是如何运行的。