spring - 实体的所有存储库方法上的隐藏和静态过滤器
问题描述
免责声明:请不要建议重新设计数据库模型/数据库模型概念缺陷。这个问题是关于所描述的情况,没有办法改变这种情况。
假设我有一张桌子fruits
,有name
,color
和type
作为字段这意味着,所有的苹果都有type=apple
,所有的橙子都有type=orange
,依此类推。
现在创建一个名为的 JPA 实体/模型Apple
现在创建一个使用映射的 3 个字段Table=fruits
,我想创建一个AppleRepository
参数type
被静态设置为apple
且外部消费者不可见的位置。
所以我不想提供
AppleRepository.findByTypeAndNameContains
要求调用者现在设置type
为apple
而只是
AppleRepository.findByNameContains
而类型静态设置为apple
.
Orange
(使用相同的方法,然后我会选择OrangeRepository
使用type=orange
)
我知道我可以使用@Query
用来编写一个自定义查询,其中类型只是静态包含并且只映射动态参数......但是
问题:有没有一种优雅的方法可以在不使用的情况下实现它@Query
?
解决方案
您所拥有的是“单表”继承策略背后的原理。它包括将所有实体存储在单个表内的层次结构中,并使用鉴别器列(即您的类型列)区分它们。
有关详细信息,请参阅文档
推荐阅读
- java - 打开外部 URL 时“片段中的 startActivityForResult(Intent,int) 已弃用”的 Java 解决方案?
- angularjs - 使用 NGINX 在具有单个根文件夹的子目录中运行多个 Angular 应用程序
- linux - 在 64 位 Amazon Linux 2 实例上从源构建包的正确位置是什么?
- javascript - EJS - 包含来自 JSON 文件的配置
- javascript - 如何检查空数组的对象
- node.js - 如何以与前缀字段绑定的角度方式向数组添加新属性
- reactjs - 使用 antd 输入组件放大 npx create-react-app 中的输入搜索组件
- swift - 如何在会话运行期间修改“AR参考图像集”?
- python - 使用函数过滤行而不是创建单独的数据帧副本
- html - 在 React 中在不更改视口的情况下在顶部渲染 html?