Couchbase文档Spring数据中的通用实体

时间:2017-11-20 17:20:17

标签: spring nosql spring-data spring-data-jpa couchbase

像Couchbase这样的文档DB的一个优点是无模式实体。它使我可以自由地在文档中添加新属性而无需更改架构。

使用Couchbase JsonObject和JsonDocument,只要将新属性添加到文档中,我的代码仍然是执行CRUD操作的通用代码,无需修改它。请参阅this example,其中未创建任何实体。

但是,如果我按照通常的Spring Data方法创建实体类,我就不会充分利用这种灵活性。每当我在文档中添加新属性时,我都会进行代码更改。

是否有使用Spring Data的通用实体的方法?或者Spring Data不适合无模式数据库?或者我的理解是不正确的?

1 个答案:

答案 0 :(得分:0)

我认为反之亦然。

如果您引入新字段,您必须处理现有数据并且没有该字段。

您要更新所有文档以包含该字段。这就是基于模式的商店基本上迫使你去做的事情。

或者您按原样离开商店,让您的应用程序处理该问题。使用Spring Data,您可以通过一些非常明显的方式以一致的方式处理它,例如:通过在实体中具有默认值或在侦听器中处理它。