我在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*/
}
答案 0 :(得分:2)
是的,如果您拥有正确的存储库配置,则可能。有关具体细节,请参阅the documentation。
答案 1 :(得分:2)
是的,这是非常有可能的。一个典型的例子是您希望在本地/测试和生产环境中拥有不同的数据源。您可以在测试环境中使用Mongo,在生产中使用MySql。因此,您可以同时使用spring-data-mongo
和javax.persistance
注释