ktorm icon indicating copy to clipboard operation
ktorm copied to clipboard

ksp column converter in version 4.0.0 disappeared

Open okfanger opened this issue 9 months ago • 0 comments

I used org.ktorm.ksp.api.EnumConverter for defining column converter in version 1.0.0-RC3.

import org.ktorm.ksp.api.EnumConverter
import org.ktorm.schema.BaseTable
import org.ktorm.schema.Column
import org.ktorm.schema.int
import kotlin.reflect.KClass

object IntEnumConverter : EnumConverter {
    override fun <E : Enum<E>> convert(table: BaseTable<*>, columnName: String, propertyType: KClass<E>): Column<E> {
        val values = propertyType.java.enumConstants
        return with(table) {
            int(columnName).transform({ values[it] }, { it.ordinal })
        }
    }
}

and

import cn.akfang.aster.common.util.JacksonUtil
import org.ktorm.ksp.api.MultiTypeConverter
import org.ktorm.schema.BaseTable
import org.ktorm.schema.Column
import org.ktorm.schema.varchar
import kotlin.reflect.KClass

object JsonFieldConverter : MultiTypeConverter {
    override fun <T : Any> convert(table: BaseTable<*>, columnName: String, propertyType: KClass<T>): Column<T> {
        with(table) {
            return varchar(columnName).transform(
                { JacksonUtil.INSTANCE.string2Obj(it, propertyType.java)!! },
                { JacksonUtil.INSTANCE.obj2String(it) ?: "{}" }
            )
        }
    }
}

Is there a corresponding replacement scheme for version 4.0? Or maybe I'm missing something. Thanks.

okfanger avatar May 17 '24 18:05 okfanger