2014-10-06 2 views
1

У меня есть некоторые проблемы в аннотации:Котлин: некоторые проблемы с массивами в аннотациях

Entity Table(uniqueConstraints = array(UniqueConstraint(columnNames = array("key", "userid")))) 
public class ... 

В этом случае я получаю следующее сообщение об ошибке:

Type inference failed. Expected type mismatch: found: kotlin.Array required: kotlin.String

Существует никаких проблем с uniqueConstraints = array (...), но Idea показывает мне ошибку в columnNames = array (...)

I u петь гибернации-JPA-2,1-апи-1.0.0.Final.jar


Обход: вместо uniqueConstraints я с помощью составного ключа (@ javax.persistence.IdClass)

ответ

2

Это работает для меня:

@Table(uniqueConstraints = arrayOf(
     UniqueConstraint(columnNames = arrayOf("key", "key")) 
)) 
+0

Это было 3 много лет назад. Котлин был в Milestone, а иногда новая версия сломала существующий код @Alykoff Gali, Что касается последней версии, да, вы абсолютно правы –

0

Борьба с этим сама сегодня. Следующий фрагмент кода работает с последней версией Котлин:

@ApiResponses(value = *arrayOf(
     ApiResponse(code = 403, message = "Unauthorized"), 
     ApiResponse(code = 404, message = "Item not found"))) 

или более короткий вариант:

@ApiResponses(
    ApiResponse(code = 403, message = "Unauthorized"), 
    ApiResponse(code = 404, message = "No active snapshots")) 

если аннотацию с массивом определяется как:

public @interface ApiResponses { 
    ApiResponse[] value(); 
} 
Смежные вопросы