与columnPrefix关联,给出SQLException无效的列名

时间:2016-08-18 20:08:31

标签: java sql mybatis

我在尝试SQLException: invalid column name <association>标记时获得columnPrefix。 e.g。

示例结果地图:

<resultMap id="foo" type="Foo">
  <result column="col1" property="col1"/>
</resultMap>

<resultMap ...>
  <association property="myFoo" 
               notNullColumn="some_id"
               resultMap="foo"
               columnPrefix="BAR_"/>
</resultMap>

示例SQL:

select some_id, BAR_col1, ... from (someTables)
                ^^^^--prefixed columns...

如果我关闭columnPrefix并为每列创建foo的{​​{1}}自定义结果图,则可行。这里发生了什么?

1 个答案:

答案 0 :(得分:0)

问题在于bar_!它必须遵循两条规则:

  • 在SQL语句中,列别名必须以列前缀(notNullColumn)开头,即使它不是关联结果映射的一部分(select BAR_some_id ...,在我的情况下) 。
  • foo声明不应包含前缀。 (所以notNullColumn是错误的。必须是notNullColumn="BAR_some_id"。)