带有下划线的mybatis列名称

时间:2016-08-07 14:47:44

标签: mysql mybatis

这是一个错误吗? 当我使用mybatis和mysql,列名称为permission_ids时,我总是得到null。 但当我将其更改为permissions时,它才有效。为什么呢?

SELECT
    sys_role.id,
    sys_role.role,
    sys_role.description,
    sys_role.permission_ids
FROM sys_role
WHERE id = #{id}

1 个答案:

答案 0 :(得分:0)

如果您正在使用XML文件:

你应该:

<select  id="selectQuery" resultMap="selectMap">
    SELECT
        sys_role.id,
        sys_role.role,
        sys_role.description,
        sys_role.permission_ids
    FROM sys_role
    WHERE id = #{id}
</select>

<resultMap id="selectMap" type="SysRole">
   <id column="permission_ids" property="permissionIds">
   <result ....//the rest columns to map to java properties in your model class "SysRole"
</resultMap>

这应该有用!

如果没有,作为解决方案的替代方案,您可以使用Alias而不是重命名列&#34; permission_ids&#34;:

SELECT
    sys_role.id,
    sys_role.role,
    sys_role.description,
    sys_role.permission_ids **as permissions**
FROM sys_role
WHERE id = #{id}