java - api restful Spring的许多表
问题描述
我对我的项目架构有疑问。我需要创建 10 个 api 休息,但我的数据库有 300 个没有关系的表。
我的问题是:有必要从我的数据库中创建所有实体吗?最佳做法是什么?发电机休眠?
解决方案
有必要从我的数据库中创建所有实体吗?
不必生成所有实体。对于您的用例,过滤掉将由 10 个其余 API 使用的表,并仅为这些表创建实体。该列表可能包括 5、10 或 30 个表(计数无关紧要)。更准确地说,您只需要针对您打算直接或间接为这些端点工作的表创建实体。
最佳做法是什么?发电机休眠?
几乎总是,由休眠生成器生成的实体是一个好的开始,但大多数情况下,生成的实体远非完美(或接近完美)。例如,db 中的 joiner 表通常最终成为一个单独的实体。随意为您需要的表使用休眠实体生成器(是的,您可以使用“表过滤器”指定少数表)但我强烈建议重新访问所有生成的实体并根据您的特定需求调整它们。我个人更喜欢自己手动编码实体而不是使用生成器,尤其是在实体很少的情况下。
关于最佳建模技术,这是一个很大的话题,我建议从hibernate 官方文档开始。虽然文档侧重于休眠细节,但它讨论了休眠特性上下文中的各种建模技术,以及哪种技术适用于哪种目的。您可能还想查看 JPA 教程甚至 spring-data-jpa 。
希望能帮助到你!!
推荐阅读
- php - 为数组的键和值对提供自定义名称
- r - 文本挖掘 - 没有 `tm` 包的词干提取方法
- python-3.x - 如何检查数字奇偶python?
- angular - 如何以角度反应形式使用指令
- python - 多次重定向到抓取网站后如何登录?
- javascript - 本地存储不存储 URL
- html - Safari 10 中的按钮没有包裹和溢出容器(在 Edge 和 Chrome 中很好)
- selenium - 为什么我应该使用 CSS 选择器而不是 XPath 进行自动化测试?
- android - RecyclerView - 当我只想更新 1 个视图时更新 2 个视图
- javascript - 对没有全局变量的多个事件使用 Promise 回调