注释中如何处理Kotlin多行字符串?

时间:2018-10-23 17:01:09

标签: intellij-idea kotlin

我正在使用Intellij使用JPA编写Kotlin存储库。我转换了一个现有的Java类,该类的@Query字符串特别长。

@Query("SELECT a.column1, a.column2, b.column3, b.column4, b.column5, b.column6) FROM TableA as a JOIN TableB as b ON a.id = b.foreignKeyId WHERE a.column1 = :column1 AND b.column2 = :column2 AND b.column3 IN :column3Values")

公共列表someFancyMethodName(...);

转换为Kotlin后,我将注释参数转换为多行字符串并开始插入换行符。 Intellij(有帮助吗?)插入了用于处理边距的管道。

最终看起来像这样。

@Query("""SELECT a.column1, a.column2, b.column3, b.column4, b.column5, b.column6)
    | FROM TableA as a
    | JOIN TableB as b ON a.id = b.foreignKeyId
    | WHERE a.column1 = :column1
    | AND b.column2 = :column2
    | AND b.column3 IN :column3Values""")
fun someFancyMethodName(...): List<SomeFancyReturnValue>

我的第一个想法是,这不适用于嵌入式管道,并且Intellij不应将其插入注释参数中。还是当多行字符串是注释参数时,在编译时删除管道a是否足够聪明?

1 个答案:

答案 0 :(得分:1)

此行为是Kotlin插件中的错误;编译器实际上不足以删除|字符。我已经提交了an issue