2016-08-18 1 views
0

Я получаю SQLException: invalid column name при попытке использовать тег <association> с columnPrefix. напримерАссоциация с 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 прочь и сделать пользовательский resultmap из foo, который имеет встроенный bar_ для каждого столбца, это работает. Что тут происходит?

ответ

0

Проблема была с notNullColumn! Он должен следовать двум правилам:

  • В операторе SQL, псевдоним столбца должно начинаться с префикса столбца (так select BAR_some_id ...), даже если это не является частью соответствующего результата карты (foo, в моем случае).
  • Объявление notNullColumn не должно содержать префикс. (так что notNullColumn="BAR_some_id" является неправильным. Он должен быть notNullColumn="some_id".)
Смежные вопросы