2

使用其他框架中的类、枚举等是不是很糟糕?我的存储库中有一些基于 JPA 的查找器方法,我想传递 fetch 类型(是否应该延迟或急切地加载对象)并且FetchType来自 JPA 框架的枚举适合目的。但是创建自己的枚举/类会更好吗?我知道它在我的应用程序和框架之间建立了耦合,但我的应用程序已经在使用 JPA。

4

4 回答 4

2

看来您已经回答了自己的问题。

...FetchType来自 JPA 框架的枚举适合目的。

如果 JPA 已经是您的应用程序的依赖项,并且它们的类型适合您的用例,那么您没有理由重新发明轮子来避免使用 JPA 类型。

PS Gamb 在他的回答中提出了一个非常好的观点,他建议将类型的使用限制在持久层上。

于 2012-11-11T18:35:27.237 回答
2

事实上,您可以使用FetchType枚举,但请考虑您在哪里使用它。如果您有分层设计,请避免在除 Persistence 层之外的任何层中使用该枚举,否则您必须在更高层中从 JPA 导入引用(如果需要)。

另一种方法(因为您只有EAGERand LAZY)是定义是否应获取字段并为该条件分配一个boolean值,例如lazyLoad标志。

于 2012-11-11T18:41:21.793 回答
1

就像 robjb 已经说过的,没有必要重新发明轮子。这就是框架的全部目的:为开发人员提供工具和助手来简化标准任务。所以我建议使用框架类。如果它们不能满足您 100% 的需求,您可以随时扩展它们以满足您的需求 - 同样,如果缺少的只是一个小螺丝,就没有理由重新发明整个轮子:-P

于 2012-11-11T18:39:19.143 回答
1

即使您已经在使用该框架,我也会尽可能让您的逻辑的上层不受它的影响。原因:

  • 阅读您的代码并看到您使用框架中的类的人会假设它用于为您的框架进行通信(好吧,这很弱)。

  • 如果您想更改,如果您只使用框架中的类与它进行交互会更容易。

不过,这一切都不是一成不变的。如果自己开发课程需要花费大量时间,您可以决定去做,并希望没有人愿意更改引擎。

于 2012-11-11T18:41:42.580 回答