首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向JPA实体添加业务逻辑

向JPA实体添加业务逻辑
EN

Stack Overflow用户
提问于 2020-11-01 18:28:32
回答 1查看 144关注 0票数 0

在下一个场景中,我必须将一些带有JPA规范的静态过滤器(添加where子句)应用到JPA实体中,以获得过滤过的狗的列表--例如,我从一个实体接收一个id,我必须应用相同的过滤器,但是为每个过滤器发送错误消息。例如:拥有实体狗,我收到一个id,得到这个实体与JPA和应用一些过滤器,如狗age>3年,等等.

我的想法是重用JPA规范来完成它,但是使用它们不会给我提供为什么我没有得到实体以及为了发送错误消息而没有完成的过滤器的信息。

我所做的是将像isDogOlderThan3Years()这样的方法添加到JPA实体中,并且实体本身为每个过滤器请求它的属性等等。我认为这与非贫血的实体有关。这是一个好/坏的解决方案吗?还有更好的吗?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-02 05:09:06

我认为规格模式在这里可能是有用的。

您可以使用访客模式将规范组合转换为JPA查询,还可以实现上述文章中讨论的remainderUnsatisfied操作,以确定给定候选人不符合哪些标准。

如果您不关心关注点的分离,则可以直接在规范上实现toJpaFilterdescribe等方法。

我在我的一个项目中使用了这种方法,在这个项目中,我成功地重用了相同的规范来执行以下操作,而且效果很好:

  • 定义复杂的访问控制规则和过滤器
  • 定义和执行业务规则
  • 生成规范的用户友好描述。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64635462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档