【问题标题】:Combine DAO and Entity in Spring and Hibernate在 Spring 和 Hibernate 中结合 DAO 和 Entity
【发布时间】:2017-06-24 20:47:47
【问题描述】:

我想知道是否可以将 DAO 和实体组合在一个类中。例如

在轨道中

如果我有名为user 的表,那么将有一个ActiveRecord 用户,通过使用该类,我可以访问与数据库和用户相关的访问方法,即它具有user.name(访问对象属性)和user.save 两种方法/User.get_all方法(管理DB交互)在同一个类中

在 Spring/Hibernate 配置中

我有两个东西:DAO 和实体

实体: 我有 User 类,它是一个实体,并将 Table 映射为 POJO,以便我可以访问与单个用户相关的方法,例如user.getName()

DAO:我有一个 DAO,其中有数据库交互,例如userDAO.save(user)userDAO.get(id)

问题:

我想知道是否可以创建单个 User 类并在内部定义 User 属性和 getter/setter 以及 DB 交互,以便我可以将单个类作为两者,即user.getName()(作为 POJO)和User.get(id)/@987654330 @(作为 DAO)。

这种方法可行吗?如果我从这种方法开始,为什么会遇到并发症?

【问题讨论】:

    标签: spring hibernate dao


    【解决方案1】:

    它被称为 Active Record 模式。这是有关 JPA 主题的文章。 Active Record Pattern 。和例子https://github.com/ActiveJpa/activejpa

    这种方法可行吗?如果我从这种方法开始,为什么会遇到并发症?

    它是:

    1. Cohesion & Coupling

    2. 如果是真正的项目,支持它可能会成为问题

    3. 当您有 20 个实体时,很难决定将方法放在哪个实体中,也很难找到您需要的方法,因为它可能在很多地方都存在

    4. 当您不使用活动记录模式时,您可以与 web 层共享实体,活动记录实体不能序列化。

    5. 代码越来越大

    【讨论】:

      猜你喜欢
      • 2011-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-19
      • 2011-04-22
      • 2012-09-25
      • 1970-01-01
      • 2010-12-07
      相关资源
      最近更新 更多