我想知道是否可以在单个类中组合DAO和Entity。 e.g。
如果我有一个名为user
的表,那么将有一个ActiveRecord用户,通过使用该类,我可以访问与DB和用户相关的访问方法,即它有两个方法user.name
(访问对象属性)和user.save
/ User.get_all
方法(管理数据库交互)在同一个类
我有两件事:DAO和实体
实体:我有一个User类,它是一个实体,并将Table映射为POJO,因此我可以访问与单个用户相关的方法,例如user.getName()
DAO:我有一个DAO,其中有数据库交互,例如userDAO.save(user)
和userDAO.get(id)
。
我想知道我是否可以创建单个User类并在内部定义User属性和getter / setter以及DB交互,这样我就可以单独作为两个类,即user.getName()
(作为POJO)和{{1} } / User.get(id)
(作为DAO)。
这种方法是否可行,如果我从这种方法开始,为什么我可能会遇到并发症?
答案 0 :(得分:1)
它被称为Active Record Pattern。这是关于JPA主题的文章。 Active Record Pattern 。和示例https://github.com/ActiveJpa/activejpa
这种方法是否可行,如果我从这种方法开始,为什么我可能会遇到并发症?
它的:
如果是真正的项目,支持它可能会成为问题
当你有20个实体时,很难决定将方法放在哪个实体中,并找到你需要的方法,因为它可能在很多地方
当您不使用活动记录模式时,您可以与网络层共享实体,活动记录实体不能序列化。
代码变得越来越大