iku8blog

Webエンジニアのタダのメモ。

mybatisでfreemarker使ったときのバグ「freemarker.core.ParseException: Syntax error in nameless template in line 1」

mybatisで生のSQLが使いたくて、mybatis-freemarkerを入れたが、なにやらパースエラーが起こっているらしい

freemarker.core.ParseException: Syntax error in nameless template in line 1, column 109:
Encountered ",", but was expecting one of:
    "."
    ".."
    <DOT_DOT_LESS>
    "..*"
    "?"
    "??"
    "!"
    ";"
    "["
    "("
    "}"
    <TERMINATING_EXCLAM>
    at freemarker.core.FMParser.generateParseException(FMParser.java:6107) ~[freemarker-2.3.29.jar:2.3.29]
    at freemarker.core.FMParser.jj_consume_token(FMParser.java:5966) ~[freemarker-2.3.29.jar:2.3.29]
    at freemarker.core.FMParser.NumericalOutput(FMParser.java:1712) ~[freemarker-2.3.29.jar:2.3.29]
    at freemarker.core.FMParser.MixedContentElements(FMParser.java:3959) ~[freemarker-2.3.29.jar:2.3.29]
    at freemarker.core.FMParser.Root(FMParser.java:4652) ~[freemarker-2.3.29.jar:2.3.29]
    at freemarker.template.Template.<init>(Template.java:252) ~[freemarker-2.3.29.jar:2.3.29]
    at freemarker.template.Template.<init>(Template.java:202) ~[freemarker-2.3.29.jar:2.3.29]
    at freemarker.template.Template.<init>(Template.java:181) ~[freemarker-2.3.29.jar:2.3.29]
    at freemarker.template.Template.<init>(Template.java:124) ~[freemarker-2.3.29.jar:2.3.29]
    at org.mybatis.scripting.freemarker.FreeMarkerLanguageDriver.createSqlSource(FreeMarkerLanguageDriver.java:162) ~[mybatis-freemarker-1.2.2.jar:1.2.2]

freemarkerの記述は間違ってないが、なぜかパースエラー。

どうやら以下のmybatis-thymeleafが必要だったぽい

https://mvnrepository.com/artifact/org.mybatis.scripting/mybatis-thymeleaf/1.0.2

また後でまとめる。

参考

mybatis-spring-boot-starterの使い方 - Qiita