我正在制作一个 ZF2 应用程序。我正在使用实体、映射器和服务(例如 UserEntity、UserMapper、UserService)来管理对象/模型。实体中的属性是 CamalCased(例如 FirstName、LastName),而在数据库中,字段使用下划线(first_name、last_name)。我将计划在检索或保存时使用水合器来映射属性和数据库字段。服务对象 (UserService) 将用于与映射器通信,以使用映射器检索和保存数据模型。hydrator 将转换 mapper 的结果并将它们转换为适当的实体。
我感到困惑的是,当服务 (UserService) 需要提供一些 cirteria - 例如查找具有特定“姓氏”的所有用户时,服务将使用数据库字段名称 (last_name) 还是实体属性名称 (LastName )?
如果服务中使用了 db 字段名称,那么 db 结构的任何更改都将需要我也更新服务,这完全没有使用整个方法的原因。