我目前正在为我的应用程序使用面向文档的 NoSQL 数据库。
我想到这一举措的主要动机是:
- 我的服务器端向其客户端发出 JSON。
- 我的服务器端是基于 Java 的。
- 使用关系数据库意味着我需要从 DB 中的关系数据 -> Java 代码中的对象数据 -> JSON 文档进行转换以供客户端使用(反之亦然)。
- 步骤 3 中涉及的 ORM 开销似乎足以避免。
- 我的数据库架构可能会发生变化,我想轻松地适应它们。
- 缓存(比如使用 Redis 或 NoSQL DB 本身)与底层 NoSQL 数据库很好地映射。
- 使用 NoSQL 数据库进行扩展和分发感觉很自然。
因此,鉴于决策制定的背景,我最终得到以下数据转换:
JSON(到/从客户端)<-> Java(在服务器端)<-> NoSQL 数据库中的 JSON 文档。
我的问题是,是否可以最小化这些转换(对于 Java 服务器端)?(可能如果我在服务器端使用 Node.js,我可以一直使用 JSON,但我不能在服务器端从 Java 更改)。
我正在做的事情是通常的方式还是有可能进行优化(关于数据转换)?
尽管可能有一些库/包有助于将 Java 对象转换为 NoSQL DB 中的 JSON 文档(如 Morphia、Ektorp、Mongolink 等),但我的问题是是否有可能首先避免此类转换。