【发布时间】:2012-11-10 03:57:40
【问题描述】:
我想重新使用来自不同 *Mapper.xml 文件的特定文件,这些文件都以某种方式读取相同的对象。
我有一个名为 Project 的数据库表,我为它创建了以下 resultMap:
<resultMap id="ProjectMap" type="com.model.Project">
<id column="id" jdbcType="BIGINT" property="id" />
<result column="name" jdbcType="VARCHAR" property="name" />
<result column="client_prj_no" jdbcType="VARCHAR" property="clientPrjNo" />
<result column="notes" jdbcType="VARCHAR" property="notes" />
<result column="start_date" jdbcType="TIMESTAMP" property="startDate" />
...
<resultMap>
它在 ProjectMapper.xml 中效果很好,但是,现在我想创建一个 ClientWithProjectsMapper.xml,我想在其中 SELECT * FROM CLIENT, PROJECT where PROJECT.CLIENT_ID = CLIENT.ID 并让 Client 对象返回一个 List对象。换句话说,我想用一条 SQL 获得一个 ClientWithProjects。
在我的映射中,我想重用我在 ProjectMapper.xml 中定义的 ProjectMap(无需复制/粘贴),但我不确定如何实现。
我可以将 ProjectMap 分解到一个单独的文件中,但我没有在 MyBatis 中找到任何工具来#include 其他文件。
关于如何做到这一点的任何想法? (我正在使用 Maven,是否有任何插件可以过滤查找#include 等的文件,并将文件的内容直接包含到正在处理的文件中?)。
谢谢。
-AP_
【问题讨论】:
-
MyBatis 只允许导入属性文件。映射器 xml 文件可以在主配置 xml 中指定,但无法包含整个 XML 元素。需要 Maven 或其他一些构建步骤来动态创建最终的 XML。
-
我相信这是重复的? stackoverflow.com/questions/6069071/…
标签: refactoring mybatis resultset mappers