我可以在java spring-boot应用程序的同一数据库下的两个集合之间切换吗?

时间:2019-07-02 19:26:30

标签: database mongodb spring-boot collections spring-mongodb

我的Java应用程序中有与mongodb相关的代码,我可以在Java代码中同一数据库下的两个集合之间切换吗?

@JsonIgnoreProperties(ignoreUnknown = true)
@Document(collection = "collectionA")
@QueryEntity
public class RepreCase {

我想在这里有一个不同的收藏集,而不是这样说 collectionB @Document(collection = "collectionA"),并通过在同一收藏夹下的两个收藏夹A和B之间切换来返回到同一collectionA数据库

我可以这样吗? @Document(collection = "collectionA, collectionB")

这是可以实现的吗?预先感谢

1 个答案:

答案 0 :(得分:0)

example应该会帮助

像这样定义您的实体类

@Document(collection = "${EventDataRepository.getCollectionName()}")
public class EventData implements Serializable {

使用“ collectionName”的getter和setter方法定义自定义存储库接口

public interface EventDataRepositoryCustom {

    String getCollectionName();

    void setCollectionName(String collectionName);
}

通过“ collectionName”实现为自定义存储库提供实现类

public class EventDataRepositoryImpl implements EventDataRepositoryCustom{

    private static String collectionName = "myCollection";

    @Override
    public String getCollectionName() {
        return collectionName;
    }

    @Override
    public void setCollectionName(String collectionName) {
        this.collectionName = collectionName;
    }
}

将EventDataRepositoryImpl添加到存储库接口的扩展列表中,看起来像这样

@Repository
public interface EventDataRepository extends MongoRepository<EventData, String>, EventDataRepositoryImpl  {
}

现在在使用MongoRepository的Service类中,设置集合名称,看起来像

@Autowired
EventDataRepository  repository ;

repository.setCollectionName("collectionName");