6

I have a some problem in annotations:

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

In this case I get the following error:

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

There is no problems with uniqueConstraints = array(...) but Idea shows me error in columnNames = array(...)

I using hibernate-jpa-2.1-api-1.0.0.Final.jar


Workaround: Instead uniqueConstraints I using composite key (@javax.persistence.IdClass)

3 Answers 3

14

This works for me:

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

Also for new version kotlin you may do that:

@Table(uniqueConstraints = [
    UniqueConstraint(columnNames = ["key", "key"])
])
Sign up to request clarification or add additional context in comments.

1 Comment

It was 3 years ago. Kotlin was in Milestone and sometimes new version broke existing code @Alykoff Gali, Regarding latest version, yes, you are absolutely right
3

Use the spread operator:

UniqueConstraint(columnNames = *array("key", "userid"))

Comments

0

Was struggling with this myself today. The following snippet works with the most recent version of Kotlin:

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

or a shorter option:

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

if an annotation with an array is defined as:

public @interface ApiResponses {
    ApiResponse[] value();
}

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.