gpt4 book ai didi

java - 将业务方法添加到自动生成的 hibernate 实体

转载 作者:搜寻专家 更新时间:2023-11-01 03:11:08 26 4
gpt4 key购买 nike

我们正在开发一个使用 hibernate 来实现持久性的新系统。随着架构的变化,我们使用 NetBeans 重新生成实体类。

随着系统的发展,我们发现许多功能迫切需要作为业务方法添加到实体中,但由于我们不时重新生成这些类,我们不愿意这样做。

是否有一种优雅的方式能够重新生成实体类并仍然添加业务逻辑,例如在 Hibernate 将使用的子类中?

非常感谢,

伊恩。

最佳答案

据我所知不是。不过,我有一个解决方案。

业务逻辑代码必须放在某个地方——问题是放在哪里。您可以将它放在@Entity 上,用@Transient 标记业务getter,但好的设计建议使用单独的类DAO。类。

将业务与持久性代码分开遵循 "high cohesion"设计原则,给你​​:

  • 您的实体类保持干净 - 即它的代码完全与持久性相关。此外,由于您没有向其中添加任何内容,因此可以随时安全地重新生成它。
  • 您的“业务逻辑”类(通常与实体类同名,但在名称后加上“Dao”,例如CustomerDao)有处理方法具有(通常是粗粒度的)行为。此外,单元测试通常更容易,因为您不想测试实体方法(您可以假设它们工作 - 这不是您的代码)并且可以更轻松地设计您的代码以允许容易模拟实体(不是真实实体)

您可以通过为实体共有的行为创建一个类型化的抽象 DAO 类来利用一些重用(在/如果有意义的情况下)。

关于java - 将业务方法添加到自动生成的 hibernate 实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9943739/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com