Spring:一个类可以是@Document和@Table

时间:2017-12-20 14:35:36

标签: java spring mongodb spring-mvc cassandra

我在MVC上下文中使用spring。我正在与Cassandra和MonogDB合作。对于该项目,我必须使我的模型和dao类与这两个数据库兼容。是否可以将同一模型类设为@Document并且@Table?春天能否在运行时做出区分?

例如,对于mongo我会有

@Document
public class Book{

    @Id
    private String uniqueId;

    /*Other details*/
}

对于cassandra我会有

@Table
public class Book{

    @PrimaryKeyColumn(name = "uniqueId", ordinal = 0, type = PrimaryKeyType.PARTITIONED, ordering = Ordering.ASCENDING)
    private String uniqueId;

    /*Other details*/
}
我可以拥有像

这样的东西吗?
@Table
@Document
public class Book{

    @PrimaryKeyColumn(name = "uniqueId", ordinal = 0, type = PrimaryKeyType.PARTITIONED, ordering = Ordering.ASCENDING)
    @Id
    private String uniqueId;

    /*Other details*/
}

2 个答案:

答案 0 :(得分:2)

是的,如果您拥有正确的存储库配置,则可能。有关具体细节,请参阅the documentation

答案 1 :(得分:2)

是的,这是非常有可能的。一个典型的例子是您希望在本地/测试和生产环境中拥有不同的数据源。您可以在测试环境中使用Mongo,在生产中使用MySql。因此,您可以同时使用spring-data-mongojavax.persistance注释