mybatis 如何不将父类的数据上传数据库
时间: 2024-01-21 14:18:20 浏览: 42
在使用 MyBatis 进行数据操作时,如果不想将父类的数据上传到数据库,可以在 Mapper 映射文件中使用 `<sql>` 标签定义一个 SQL 片段来排除父类的属性。
例如,假设有一个父类 BaseEntity,子类 User 继承自 BaseEntity,如果在 UserMapper.xml 中不想将 BaseEntity 中的属性上传到数据库,可以这样写:
```xml
<sql id="baseColumnList">
<if test="_parameter != null and _parameter.class.getSuperclass() != null">
<include refid="Base_Column_List"/>
</if>
</sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap">
SELECT
<include refid="baseColumnList"/>
<include refid="Result_Column_List"/>
FROM user
WHERE id = #{id,jdbcType=BIGINT}
</select>
```
在上面的示例中,我们使用了 `<sql>` 标签定义了一个名为 baseColumnList 的 SQL 片段,该片段判断了参数是否为 BaseEntity 的子类,如果是则包含 Base_Column_List(即 BaseEntity 的属性),否则不包含。在实际使用中,可以在需要排除父类属性的 SQL 语句中引用该片段即可。