我希望 mybatis 调用工厂方法来创建对象而不是构造函数。因此,对于空值属性,我可以返回一个 NULL 对象(它具有处理所有边缘情况的重写行为)而不是实际对象。我可以用 mapper.xml 实现吗?
问问题
3102 次
2 回答
1
定义自己的 ObjectFactory
http://www.mybatis.org/core/configuration.html#objectFactory
于 2012-05-22T12:57:02.457 回答
0
要回答您的具体问题,据我所知,无法直接(且仅)在 mapper.xml 文件本身中指定工厂方法。然而,在 MyBatis 中有两个选项可以做你想做的事:
- 正如 Bhaskar 的回答中所述,您可以使用 ObjectFactory。
- 理论上,您也可以定义一个 TypeHandler,但我在最近的测试中无法让它工作。
如果您想查看如何使用 MyBatis ObjectFactory 来实现 Null 对象的工作示例,请参阅我的 MyBatis koans 的 koan19:https ://github.com/midpeter444/mybatis-koans 。(在 completed-koans/koan19 目录中查找我想出的解决方案。)
于 2012-05-28T16:36:02.490 回答