繁体   English   中英

在何处(哪一层)放置实体查询方法,“持久”方法等?

[英]Where (which layer) to put Entity query methods, “persist” methods etc.?

我有一个带有一些JPA /休眠实体的SEAM应用程序。 现在,我想知道将查询和持久性方法放在哪里。

默认选择似乎将它们放置在注入的会话bean层中

@PersistenceContext(...) @Inject EntityManager entityManager;

但是我想我更愿意在实体本身上使用方法。 赞成/反对者是什么?

  1. Testablity?
  2. 美好的事物?
  3. 性能?

有人从实体上的方法而不是会话Bean链接到与EntityManager等交互的最佳实践吗?

最好的,安德斯

我没有SEAM的经验,但是根据我在Java项目中的经验,我发现让bean清除持久化方法是最容易的。 我们通常做什么:

  • 具有用于业务对象的Bean(例如“用户”和“设置”)
  • 有一个DAO层,可以持久并检索这些bean(简单的CRUD)
  • 拥有一个服务层,该服务层现在将介绍如何处理bean,甚至可能如何构建bean的集合

这样,所有内容都非常分离,并且易于进行单元测试。 在此设置中,性能通常不是问题。

是的,这也是我之前所做的。

总的来说,我认为EJB异常冗长而笨拙,但是SEAM确实有所帮助,因此这就是为什么在我当前的项目中,额外的会话bean层只是让我查询和困扰。 我有一种感觉,如果我可以杀死这一层,就可以制作一个简洁的应用程序...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM