2

我希望 mybatis 调用工厂方法来创建对象而不是构造函数。因此,对于空值属性,我可以返回一个 NULL 对象(它具有处理所有边缘情况的重写行为)而不是实际对象。我可以用 mapper.xml 实现吗?

4

2 回答 2

1

定义自己的 ObjectFactory

http://www.mybatis.org/core/configuration.html#objectFactory

于 2012-05-22T12:57:02.457 回答
0

要回答您的具体问题,据我所知,无法直接(且仅)在 mapper.xml 文件本身中指定工厂方法。然而,在 MyBatis 中有两个选项可以做你想做的事:

  1. 正如 Bhaskar 的回答中所述,您可以使用 ObjectFactory。
  2. 理论上,您也可以定义一个 TypeHandler,但我在最近的测试中无法让它工作。

如果您想查看如何使用 MyBatis ObjectFactory 来实现 Null 对象的工作示例,请参阅我的 MyBatis koans 的 koan19:https ://github.com/midpeter444/mybatis-koans 。(在 completed-koans/koan19 目录中查找我想出的解决方案。)

于 2012-05-28T16:36:02.490 回答