如何解决 Java 同名称注解,编译报错的问题?

比如我想给一个实体类同时加上两种 @Document 注解,第一种是针对 mongodb 数据库的,用于指定绑定的表,第二种是针对 elasticsearch 的,用于简单命名。

如果我将这两个包同时导入,并使用 @Document 注解,程序报错,请问如何解决这种情况?

1 个解决方案

Doraemon
华为云计算工程师

报错原因是因为编译器无法识别你要使用的 @Document 注解是哪个包里的,要想实现问题描述中的效果,必须使用全路径。

@org.springframework.data.mongodb.core.mapping.Document(collection="Jobs")
@org.springframework.data.elasticsearch.annotations.Document(indexName="job",type="job")

而一旦使用全路径,前面的 import 语句也就可以省略了。