2016-08-18 16 views
0

当试图将<association>标记与columnPrefix一起使用时,我得到SQLException: invalid column name标记。例如与columnPrefix的关联给出SQLException无效的列名

示例结果图:

<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关闭,使foobar_嵌入式为每列一个自定义的结果映射,它的工作原理。这里发生了什么?

回答

0

问题出在notNullColumn!它必须遵循两个规则:

  • 在SQL语句中,列别名必须与列前缀(所以select BAR_some_id ...),即使它不相关的结果地图的一部分(foo,在我的情况)开始。
  • notNullColumn声明不应包含前缀。 (所以notNullColumn="BAR_some_id"是错误的,它必须是notNullColumn="some_id"。)
相关问题