代码之家  ›  专栏  ›  技术社区  ›  Powertieke

在哪里(哪一层)放置实体查询方法、“持久化”方法等。?

  •  1
  • Powertieke  · 技术社区  · 16 年前

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

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

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

    1. 可测试性?
    2. 好吗?

    是否有人通过实体上的方法而不是会话bean链接到与EntityManager等交互的最佳实践?

    最好的 安德斯

    2 回复  |  直到 16 年前
        1
  •  2
  •   Rolf    16 年前

    我没有使用SEAM的经验,但根据我在Java项目中的经验,我发现让Bean远离持久化方法是最容易的。我们通常做的是:

    • 有一个可以持久化和检索这些bean的DAO层(简单CRUD)
    • 有一个服务层,它知道如何处理bean,甚至可能知道如何构建bean的聚合

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

        2
  •  1
  •   Powertieke    16 年前

    是的,这也是我以前做过的。

    一般来说,我认为EJB非常冗长,而且是样板文件,但SEAM实际上有一点帮助,所以这就是为什么在我当前的项目中,只用于查询和持久化的额外会话bean层让我感到恼火的原因。我有一种感觉,如果我能杀死这一层,我可以制作一个相当简洁的应用程序。。。