在 Spring 和 Hibernate 中结合 DAO 和实体
Combine DAO and Entity in Spring and Hibernate
我想知道是否可以将 DAO 和实体合并到一个 class 中。例如
在rails
如果我有 table 命名为 user
那么就会有一个 ActiveRecord 用户,通过使用那个 class 我可以访问与数据库和用户相关的访问方法,即它有两种方法user.name
(访问对象属性)和 user.save
/ User.get_all
方法(管理数据库交互)在同一个 class
在Spring/Hibernate配置中
我有两个东西:DAO 和 Entity
实体: 我有用户 class,它是一个实体并将 Table 映射为 POJO,因此我可以访问与单个相关的方法用户例如user.getName()
DAO: 我有一个 DAO,其中有数据库交互,例如userDAO.save(user)
和 userDAO.get(id)
.
问题:
我想知道我是否可以创建单个用户 class 并在内部定义用户属性和 getter/setter 以及数据库交互,这样我就可以将 class 作为两者单独使用,即 user.getName()
(作为 POJO)和 User.get(id)
/user.save()
(作为 DAO)。
这种方法可行吗?如果我开始使用这种方法,为什么会 运行 出现并发症?
它叫做活动记录模式。这是关于 JPA 主题的文章。 Active Record Pattern . and example https://github.com/ActiveJpa/activejpa
Is this method possible, and why are the complications I might run into, if I start with this approach?
是:
如果是真正的项目,支持它可能会成为问题
当你有 20 个实体时,很难决定将方法放入哪个实体,也很难找到你需要的方法,因为它可能在很多地方
当您不使用活动记录模式时,您可以与网络层共享实体,活动记录实体不能序列化。
代码越来越大
我想知道是否可以将 DAO 和实体合并到一个 class 中。例如
在rails
如果我有 table 命名为 user
那么就会有一个 ActiveRecord 用户,通过使用那个 class 我可以访问与数据库和用户相关的访问方法,即它有两种方法user.name
(访问对象属性)和 user.save
/ User.get_all
方法(管理数据库交互)在同一个 class
在Spring/Hibernate配置中
我有两个东西:DAO 和 Entity
实体: 我有用户 class,它是一个实体并将 Table 映射为 POJO,因此我可以访问与单个相关的方法用户例如user.getName()
DAO: 我有一个 DAO,其中有数据库交互,例如userDAO.save(user)
和 userDAO.get(id)
.
问题:
我想知道我是否可以创建单个用户 class 并在内部定义用户属性和 getter/setter 以及数据库交互,这样我就可以将 class 作为两者单独使用,即 user.getName()
(作为 POJO)和 User.get(id)
/user.save()
(作为 DAO)。
这种方法可行吗?如果我开始使用这种方法,为什么会 运行 出现并发症?
它叫做活动记录模式。这是关于 JPA 主题的文章。 Active Record Pattern . and example https://github.com/ActiveJpa/activejpa
Is this method possible, and why are the complications I might run into, if I start with this approach?
是:
如果是真正的项目,支持它可能会成为问题
当你有 20 个实体时,很难决定将方法放入哪个实体,也很难找到你需要的方法,因为它可能在很多地方
当您不使用活动记录模式时,您可以与网络层共享实体,活动记录实体不能序列化。
代码越来越大