我正在学习"企业应用程序架构模式"。我对数据映射器模式感到困惑。据我所知,域模型本身不应该意识到存在不同的数据映射器。那么谁负责调用数据映射器来加载或保存域模型对象?
答案 0 :(得分:1)
数据映射器在框架级别用于将数据的内存中对象表示转换为数据库中的关系表示,反之亦然。 根据框架级别,我的意思是在读取关系数据库之后,ORM提供程序(如Hibernate,Ibatis等)将使用数据映射器层来创建内存中的域对象。类似地,数据映射器将内存中的域对象转换为关系数据库表示。
因此,内存中域对象本身与底层关系数据库的复杂性分离。域对象不知道数据映射器的原因是,当从数据库读取数据时,框架负责执行数据映射器,并将此数据作为内存中对象提供给请求它的代码。类似地,代码使数据库调用抽象出的Hibernate \ JPA库,而内部框架使用数据映射器层将此调用中的数据转换为数据库所需的适当格式。