- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的问题可能有点基本,但想通过 Stack Overflow 人员来解决这个问题。
通常的做法是拥有域类(具有属性和 getter/setter,例如 User.java)。然后使用 DAO(即扩展 GenericDAO.java 的 UserDAO.java)来提供 CRUD 操作。
如果我们让域扩展 GenericDAO 会怎样?就像 User.java 扩展了 GenericDAO 一样,它允许我们拥有这样的东西:
user.save();
我曾研究过 Grails,如果您了解 Grails,您就会明白为什么会出现这个问题。也有一些关于领域驱动设计的想法,我想这暗示了类似的东西。我发现an article on DDD其中说:
The clients should always call the domain objects which in turn should call the DAO's for persisting the data to the data store.
只是想知道是否有任何缺点,为什么人们不这样使用它?
最佳答案
What if we make domains extend the GenericDAO? Like User.java extends GenericDAO, which allows us to have something like this:
您如何知道该域模型的使用者将需要该方法 (save()
) ?例如,User
可以在 Web 服务中使用,该 Web 服务使用 DAO
将User
持久保存到数据库中。相同的 User
也会在响应对象中发送到 Web 服务客户端。为什么将持久层打包在 Web 服务客户端上有意义?它只会让 Web 客户端消费者感到困惑,因为 save()
在那里没有意义。
Just wanted to know if there are any disadvantages why people not use it this way?
从我的角度来看,这是关注点分离。 User
是一个模型。它的职责是代表用户
的状态。 UserDAO
是持久层的一部分。它的职责是将模型持久保存到持久性存储(例如数据库)中。通过混合两者,您可以将功能紧密结合起来。
关于java - 为什么不让 Domains 直接扩展 GenericDAO?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28542983/
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 9 年前。 Improve this qu
使用 GenericDAO 插入第二个数据源时出错 我正在尝试在 persistence.xml 中插入第二个碱基。我已经在jboss中配置了数据源并进行了测试。当在 xml 中插入第二个持久性单元并
我编写了以下 GenericDAO,如下面的代码所示 abstract public class DAO { // CRUD: create, read, update, delete public
我这里需要大脑! :p 我有一个接口(interface) IDAO,T 是实体类,K 是主键类。 我开发了一个具体的类 GenericDAO ,它提供 CRUD 操作和带有自动获取的条件查询(我创建
我有一个接口(interface) DAO , 以及它的通用实现 ( GenericDAO implements DAO )。 我想做这样的事情: public interface UserDao e
我有一个接口(interface) DAO , 以及它的通用实现 ( GenericDAO implements DAO )。 我想做这样的事情: public interface UserDao e
我有一个抽象的 DAO: public abstract class AbstractJpaDAO implements I_AbstractJpaDAO { private Class clazz;
我的问题可能有点基本,但想通过 Stack Overflow 人员来解决这个问题。 通常的做法是拥有域类(具有属性和 getter/setter,例如 User.java)。然后使用 DAO(即扩展
大多数人应该熟悉为 Spring + hibernate 制作通用 DAO。引用来自这里http://www.ibm.com/developerworks/java/library/j-generic
首先,我是 QueryDSL 的新手。 我正在使用 Spring + Hibernate 环境。 我面临的问题是构建一个 GenericDAO 来实现所有基本的 CRUD 操作,但我不确定如何从 QE
在这里查看了几个类似的问题并将逻辑应用于我的情况后,我仍然对我的 Spring/JPA 应用程序中的依赖项注入(inject)失败感到困惑。申请的前提是: 使用基于 JPA2 的注释来减少 xml 配
我希望 UserDao 类扩展 GenericDAO,我将在其中拥有所有 CRUD 方法。我读过 IBM 的文章:http://www.ibm.com/developerworks/java/libr
我正在实现 GenericDao。我有 2 个方法的问题 - getAll() 和 getById(Long id),实体类具有空值。看来类(class)没有设置。我怎么解决这个问题 ? @Repo
我有一个使用 Spring 3.1.1 的 Web 应用程序。我们有一个使用 JdbcTemplate 的 genericDao。数据源在 GenericDaoImpl 中像这样注入(inject)。
我们正在使用 Play! HTTP session 的框架。 tenantId 和 ipAddress 是多个表中通用的列。 当用户登录时,我们将 tenantId 存储在 HttpContextSe
我想利用 Objectify4 的新功能,但是我的应用程序是构建的并且正在使用版本 3。我的应用程序主要基于 ObjectifyGenericDao 模式构建,并且Objectify4 设计模式与此有
我们的web项目使用了spring3,Jpa(hibernate)。 为了保存 CRUD 和其他常用方法,我们将我们的存储库作为 spring JpaRepository 的子类。 有时我只是将存储库
我将我的 Spring MVC 环境更新为版本 4.0.0.RELEASE。阅读本文 (https://spring.io/blog/2013/12/03/spring-framework-4-0-a
我正在寻找 Hibernate 中的通用 DAO 实现,其中包括父/子关系管理(添加、删除、获取子项、设置父项等)。 实际上,网络上最常用的通用 DAO 是我在 jboss.org 上找到的那个。 。
我使用 Spring 3 和 Hibernate 4。我尝试在数据库中保存用户实体,但它不起作用。当我调用方法 finUsersByUsername(String username) 时,它运行良好。
我是一名优秀的程序员,十分优秀!