我正在使用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是否足够聪明?