Я использую Intellij для написания репозитория Kotlin с использованием JPA.Я преобразовал существующий класс 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")
public List 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 не должен вставлять их в параметр аннотации.Или это достаточно разумно, чтобы удалить каналы при компиляции, когда многострочная строка является параметром аннотации?