我发现 kotlin 中的数字不可序列化。
- 第一个问题
设备.kt:
package test.domain
import javax.persistence.*
Entity public class Device {
public Id GeneratedValue var id: Long = -1
public var name: String = ""
...
}
DeviceRestRepository.kt:
package test.domain
import org.springframework.data.repository.PagingAndSortingRepository
import org.springframework.data.repository.query.Param
import org.springframework.data.rest.core.annotation.RepositoryRestResource
RepositoryRestResource(collectionResourceRel = "device", path = "device")
public trait DeviceRestRepository : PagingAndSortingRepository<Device, Long?> {
public fun findByName(Param("name") name: String): List<Device>
}
尝试编译此代码时出现错误,因为kotlin.Long不是Serializable:
错误:(14, 72) Kotlin:类型参数不在其范围内:应该是“java.io.Serializable”的子类型?
- 第二个问题
当我尝试使用java.lang.Long时,我得到了同样的错误:
DeviceRestRepository.kt:
package test.domain
import org.springframework.data.repository.PagingAndSortingRepository
import org.springframework.data.repository.query.Param
import org.springframework.data.rest.core.annotation.RepositoryRestResource
RepositoryRestResource(collectionResourceRel = "device", path = "device")
public trait DeviceRestRepository : PagingAndSortingRepository<Device, java.lang.Long?> {
public fun findByName(Param("name") name: String): List<Device>
}
警告:(14, 72) Kotlin:不应在 Kotlin 中使用此类。改用 kotlin.Long 。
错误:(14, 72) Kotlin:类型参数不在其范围内:应该是“java.io.Serializable”的子类型?