MyBatis Java и локальные переменные MySql - PullRequest
2 голосов
/ 28 февраля 2011

Я новичок в мире Java.И у меня есть проблема с простым запросом:

<insert id="create" parameterType="models.entities.CategoryEntity">

    set @catId := (select categoryId from Categories limit 1);
     insert into Categories(CategoryId, Title, LeftValue, RightValue)
    values(@catId, 'Test in', 1,2);
   ....
</insert>

он просто не работает, когда я пытаюсь запустить его с mybatis:

PersistenceException occured : ### Error updating database. Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'insert into Categories(CategoryId, Title, LeftValue, RightValue) values(' at line 2 ### The error may involve Category.create-Inline ### The error occurred while setting parameters ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'insert into Categories(CategoryId, Title, LeftValue, RightValue) values(' at line 2

Если я удалю эту строку:

set @catId := (select categoryId from Categories limit 1);

тогда все в порядке.Что я делаю неправильно?Это проблема с jdbc или mybatis?Как использовать mysql @variables с mybatis?У кого-нибудь есть примеры использования локальных переменных MySql с mybatis?

1 Ответ

5 голосов
/ 01 марта 2011

Я узнал, как это работает. Просто установите свойство источника данных allowMultiQueries = true

jdbc:mysql://localhost:3306/DBS?allowMultiQueries=true
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...