Skip to content

Problem with Kotlin data class using an interface-typed property #16

@lavrukov

Description

@lavrukov

example:

kotlin entity

package yandex.cloud.cloudapps.persistence.ydb.entities

import com.fasterxml.jackson.annotation.JsonCreator
import com.fasterxml.jackson.annotation.JsonProperty
import tech.ydb.yoj.databind.schema.Column
import tech.ydb.yoj.repository.db.Entity

data class OperationEntity @JsonCreator constructor(
        @JsonProperty("id") private val id: Id,
        @JsonProperty("data") @Column(flatten = false) val data: Data?,
) : Entity<OperationEntity> {
    override fun getId() = id

    data class Id @JsonCreator constructor(
            @JsonProperty("value") val value: String
    ) : Entity.Id<OperationEntity>
}

Java field classs

package yandex.cloud.cloudevents.model;

import lombok.Value;

@Value
public class Data {
    Object requestParameters;
}

It raise error java.lang.IllegalArgumentException: java.lang.Object cannot be used in databinding

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions