我正在开发一个使用现有数据库的应用程序,该数据库只能通过存储过程访问。这些SP中的大多数返回来自多个表的列。
我们有一个数据访问层,它从我们的域对象层返回类型的对象。但是,由于SPs返回来自多个表的列,我不确定应该如何构建我的域对象,因为它们中的大多数不会“自然”映射到从SPs返回的数据。
示例:存储过程返回来自“员工”表和“经理”表的列:
-员工ID
-FirstName
-LastName
-经理员工ID
-ManagerFirstName
-ManagerLastName
我是否应该创建一个包含与上述列完全匹配的属性的域对象“雇员与管理器”?
我是否应该创建某种“数据访问对象”,其中包含Employee对象和Manager对象?
不幸的是,使用ORM、参数化查询或更改存储过程不是一个选项。
懂这就是我要做的,仍然要创建与您的域匹配的域对象。
原因在于
我的做法,
Class Employee{
String Id;
String FirstName;
...
Manager EmployeeManager;
}
Class EmployeeDAL{
Employee GetEmployeeWithManager(string EmployeeId){
//user data reader to populate your Employee object and fill it with Manager
Manager m = New Manager(); //fill Manager from SP
Employee e = New Employee(); //fill Employee from SP
e.EmployeeManager = m;
return e;
}
}
Class EmployeeController{
PopulateEmployee(string EmployeeId){
Employee e = EmployeeDAL.GetEmployeeWithManager(EmployeeId);
Databind(e);
'you can also access your manager from e.EmployeeManager
}
}
我有一个用户类,有16个属性,比如名字,姓氏,出生日期,用户名,密码等...这些都存储在MySQL数据库中,当我想要检索用户时,我使用ResultSet。我想将每一列映射回用户属性,但我这样做的效率似乎非常低。例如,我正在做: 也就是说,我检索所有的列,然后通过将所有的列值插入用户构造函数来创建用户对象。 有人知道更快、更整洁的方法吗?
null 没有将查询结果映射到域对象的基础结构。QueryDSL的QBean和MappingProject、Spring的BeanPropertyRowMapper和Spring-Data的OneToManyResultSetExtractor似乎级别太低,请参见下文。 没有在MyBatis中免费提供的现成会话/事务级缓存 Mybatis中没有免费提供的现成SQL语句和结果日志 因为我只问一个问题
我是Mapstruct的新手。我有一个Word对象,它包含一个字符串值和一组它自己,我想把它映射到WordDTO,它包含一个值和一组字符串值。我不知道怎么做。正如我在注释中所说,mapstruct不能映射两个对象是有道理的,但如果它有帮助,我将错误放在下面: 我为映射实现了这个接口: 谢谢你的帮助。
在对这个话题进行了大量的测试和研究之后,我无法完全解决我的问题。我正在springboot应用程序中使用modelmapper进行实体/DTO映射。我正在尝试配置modelmapper,将一个集合映射到一个简单的DTO对象。我已经创建了一个自定义转换器,它正在按预期工作: 我现在的问题是将此转换器应用于所有“集合”= 如果我直接在模型映射器中添加转换器,它就是不工作。 你对此有什么提示或解决办法吗
问题内容: 我有一个对象: 我正在寻找一种本机方法,该方法类似于以下方法: JavaScript是否对对象具有这样的功能?(我想为Node.JS使用它,所以我不在乎跨浏览器的问题。) 问题答案: 该对象没有本地对象,但是如何处理: 但是您可以使用以下命令轻松地遍历对象: 更新资料 很多人提到,以前的方法不会返回新对象,而是对对象本身进行操作。为此,我想添加另一个解决方案,该解决方案返回一个新对象并
我开始使用JOOQ和dvd租赁商店数据库aka sakila。基本上,我想找一个演员和他的角色(我创建的表)。到目前为止,我想到了这个: 我希望能够将演员及其角色提取到一个对象中:DTO。我找到了这篇文章https://arnaudroger.github.io/blog/2017/03/02/jooq-one-to-many-without-dto.html但我发现使用sfm的解决方案过于冗长,