5

我在注释中有一些问题:

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

在这种情况下,我收到以下错误:

类型推断失败。预期类型不匹配:找到:kotlin.Array 需要:kotlin.String

uniqueConstraints = array(...)没有问题,但是 Idea 在columnNames = array(...)中显示错误

我使用hibernate-jpa-2.1-api-1.0.0.Final.jar


解决方法:我使用复合键 (@javax.persistence.IdClass) 而不是 uniqueConstraints

4

3 回答 3

12

这对我有用:

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

同样对于新版本的 kotlin,您可以这样做:

@Table(uniqueConstraints = [
    UniqueConstraint(columnNames = ["key", "key"])
])
于 2017-10-29T12:13:38.267 回答
3

使用扩展运算符

UniqueConstraint(columnNames = *array("key", "userid"))
于 2014-10-06T21:14:01.873 回答
0

今天我自己也在为此苦苦挣扎。以下代码段适用于最新版本的 Kotlin:

@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();
}
于 2017-11-07T10:23:01.967 回答