Java 其中(哪一层)放置实体查询方法;坚持;方法等。?
我有一个带有一些JPA/Hibernate实体的SEAM应用程序。现在我想知道我的查询、持久化方法应该放在哪里 默认的选择似乎是将它们放在会话bean层中Java 其中(哪一层)放置实体查询方法;坚持;方法等。?,java,hibernate,jpa,ejb,Java,Hibernate,Jpa,Ejb,我有一个带有一些JPA/Hibernate实体的SEAM应用程序。现在我想知道我的查询、持久化方法应该放在哪里 默认的选择似乎是将它们放在会话bean层中 @PersistenceContext(...) @Inject EntityManager entityManager; 但我想我更愿意在实体本身上使用方法。什么是赞成/反对 可测试性 好吗 表演 是否有人通过实体上的方法而不是会话bean链接到与EntityManager等交互的最佳实践 最好的, Anders我没有使用SEAM的经验,
@PersistenceContext(...) @Inject EntityManager entityManager;
但我想我更愿意在实体本身上使用方法。什么是赞成/反对
Anders我没有使用SEAM的经验,但是根据我在Java项目中的经验,我发现让bean远离persist方法是最容易的。我们通常做的是:
- 拥有业务对象的bean(例如“用户”和“设置”)
- 有一个可以持久化和检索这些bean的DAO层(简单CRUD)
- 有一个服务层,它知道如何处理bean,甚至可能知道如何构建bean的聚合
这样,所有内容都非常分离,并且易于进行单元测试。性能通常不是此设置的问题。是的,这也是我以前所做的 一般来说,我认为EJB非常冗长,而且是样板文件,但SEAM实际上有一点帮助,所以这就是为什么在我当前的项目中,只用于查询和持久化的额外会话bean层让我感到恼火的原因。我有一种感觉,如果我能杀死这一层,我可以制作一个相当简洁的应用程序