如果实体具有构造所需的参数,该如何将实体依赖注入到存储库中?

前锤

如果实体具有构造所需的参数,我该如何将实体依赖注入到存储库中?

举个简单的例子(在PHP中,但问题与语言无关):

人实体

class Person
{
    private $firstName = "";
    private $middleName = "";
    private $lastName = "";
    private $dateOfBirth;
    private $dateOfDeath;

    public function __construct($firstName, $middleName = "", $lastName)
    {
        $this->firstName = $firstName;
        $this->middleName = $middleName;
        $this->lastName = $lastName;

        // Validation
        if(empty($this->firstName) || empty($this->lastName){
            throw new Exception("first and last name required");
        }
    }

    // ...
}

人资料库

class PersonRepository
{
    public function __construct(Person $person)  // <-- problem, need required arguments
    {
         $this->person = $person;
    }

    public function fetchById($id)
    {
         // Query database
         // ...

         // Hydrate and return a person object
         // ...

         return $person;
    }

    // ...
}

那我想念什么呢?注入实体并避免new在存储库中使用运算符的标准方法是什么

韦斯

了解有关“抽象工厂”的信息。这是一种模式。

class PersonRepository
{
    public function __construct(PersonFactory $factory){
         $this->personFactory = $factory;
    }

    public function getById($id)
    {
         // ...
         return $this->personFactory->create($row['name'], $row['surname'], ...);
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如果实体具有Enum变量,如何从实体到DTO?

来自分类Dev

如果实体不存在,如何告诉Springdata存储库的delete方法不引发异常?

来自分类Dev

如果实体之前有未索引的数据,如何在Google App数据存储中建立索引?

来自分类Dev

如果实体中没有任何更改,Spring Data的save()方法会更新数据库中的实体吗?

来自分类Dev

如何将经典sql查询的结果存储在具有休眠状态的数据库中没有实体表的对象中?

来自分类Dev

无法将实体存储库注入服务

来自分类Dev

如何将现有的 PDO 对象注入到学说实体管理器

来自分类Dev

如何将经典sql查询的结果存储在hibernate数据库中没有实体表的对象中?

来自分类Dev

如何将日期时间参数从实体框架SqlQuery和SqlParameter传递到存储过程?

来自分类Dev

将参数注入实体

来自分类Dev

将参数注入实体

来自分类Dev

与实体框架一起使用而没有存储库模式的依赖注入

来自分类Dev

构造函数注入-将两个单独的配置依赖项绑定到存储库类中

来自分类Dev

使用微服务时,不同的服务具有相似的实体要存储在数据库中,该如何处理?

来自分类Dev

具有相关实体的通用存储库

来自分类Dev

Spring Boot:如何将依赖项注入到库调用的类中?

来自分类Dev

具有存储库的实体框架的实体状态

来自分类Dev

如何将项目添加到具有对 Android Room 中父实体的外键引用的子实体?

来自分类Dev

具有存储库注入和实体框架的自定义成员资格提供程序

来自分类Dev

如何将NestJS中的服务注入到typeorm存储库中?

来自分类Dev

没有基础存储库的多个实体存储库中是否具有相同的功能?

来自分类Dev

如何将依赖项注入到Laravel作业中

来自分类Dev

如果实体的所有字段均为空,如何跳过bean验证?

来自分类Dev

如何从Java中具有AppEngine数据存储区的相同键的实体中删除实体

来自分类Dev

如果实体不存在,为什么存储库“Get”和“GetAsync”方法会抛出 EntityNotFoundException 而不是返回 null?

来自分类Dev

如果实体集为空,如何隐藏控件

来自分类Dev

如何将实体的实体键分配为数据存储区(Node JS)中不同实体的属性?

来自分类Dev

在ZF2中创建具有依赖项的理论存储库(依赖项注入)

来自分类Dev

蛋糕3:如何将具有primaryKey设置的新实体添加到数据库?

Related 相关文章

  1. 1

    如果实体具有Enum变量,如何从实体到DTO?

  2. 2

    如果实体不存在,如何告诉Springdata存储库的delete方法不引发异常?

  3. 3

    如果实体之前有未索引的数据,如何在Google App数据存储中建立索引?

  4. 4

    如果实体中没有任何更改,Spring Data的save()方法会更新数据库中的实体吗?

  5. 5

    如何将经典sql查询的结果存储在具有休眠状态的数据库中没有实体表的对象中?

  6. 6

    无法将实体存储库注入服务

  7. 7

    如何将现有的 PDO 对象注入到学说实体管理器

  8. 8

    如何将经典sql查询的结果存储在hibernate数据库中没有实体表的对象中?

  9. 9

    如何将日期时间参数从实体框架SqlQuery和SqlParameter传递到存储过程?

  10. 10

    将参数注入实体

  11. 11

    将参数注入实体

  12. 12

    与实体框架一起使用而没有存储库模式的依赖注入

  13. 13

    构造函数注入-将两个单独的配置依赖项绑定到存储库类中

  14. 14

    使用微服务时,不同的服务具有相似的实体要存储在数据库中,该如何处理?

  15. 15

    具有相关实体的通用存储库

  16. 16

    Spring Boot:如何将依赖项注入到库调用的类中?

  17. 17

    具有存储库的实体框架的实体状态

  18. 18

    如何将项目添加到具有对 Android Room 中父实体的外键引用的子实体?

  19. 19

    具有存储库注入和实体框架的自定义成员资格提供程序

  20. 20

    如何将NestJS中的服务注入到typeorm存储库中?

  21. 21

    没有基础存储库的多个实体存储库中是否具有相同的功能?

  22. 22

    如何将依赖项注入到Laravel作业中

  23. 23

    如果实体的所有字段均为空,如何跳过bean验证?

  24. 24

    如何从Java中具有AppEngine数据存储区的相同键的实体中删除实体

  25. 25

    如果实体不存在,为什么存储库“Get”和“GetAsync”方法会抛出 EntityNotFoundException 而不是返回 null?

  26. 26

    如果实体集为空,如何隐藏控件

  27. 27

    如何将实体的实体键分配为数据存储区(Node JS)中不同实体的属性?

  28. 28

    在ZF2中创建具有依赖项的理论存储库(依赖项注入)

  29. 29

    蛋糕3:如何将具有primaryKey设置的新实体添加到数据库?

热门标签

归档