Entity定义

最简单的定义:

继承Korm的EntityBase,

为了简化写法,使用了kotlin委托属性,即属性的Delegated

class User : EntityBase() {
    @delegate:Id var id: String? by korm()
    var name: String? by korm()
    var age: Int ? by korm()
}

提供全面功能的定义

@DataSource("prod-db")
@Table(name = "Test_Book")
class TestBook : EntityBase() {

    @delegate:AutoID var testId: String? by korm()

    @delegate:Comment("测试名称")
    var testName: String? by korm()
    var testURL: String? by korm()
    var testCount: Int? by korm()

    @delegate:CreatedBy var createdBy: String? by korm()
    @delegate:CreatedAt var createdAt: Date? by korm()
    @delegate:UpdatedBy var updatedBy: String? by korm()
    @delegate:UpdatedAt var updatedAt: Date? by korm()
    @delegate:DeletedAt var deletedAt: Date? by korm()

    @delegate:Column(name = "version")
    @delegate:Version var version: Int? by korm()


    fun getOperator(): String {
        return "zhangsanfeng"
    }

    fun beforeDelete(scope: Scope): Scope {
        scope.skipLeft = false
        return scope
    }
}

本教程中其他章节使用的Entity定义如下

import com.sdibt.korm.core.annotatoin.*
import com.sdibt.korm.core.callbacks.Scope
import com.sdibt.korm.core.entity.EntityBase
import com.sdibt.korm.core.entity.korm
import java.util.*
import javax.persistence.Table

@Table(name = "Test_Book")
class TestBook : EntityBase() {

    @delegate:AutoID var testId: String? by korm()

    @delegate:Comment("测试名称")
    var testName: String? by korm()
    var testURL: String? by korm()
    var testCount: Int? by korm()

    @delegate:CreatedBy var createdBy: String? by korm()
    @delegate:CreatedAt var createdAt: Date? by korm()
    @delegate:UpdatedBy var updatedBy: String? by korm()
    @delegate:UpdatedAt var updatedAt: Date? by korm()


    fun getOperator(): String {
        return "zhangsanfeng"
    }

    fun beforeDelete(scope: Scope): Scope {
        scope.skipLeft = false
        return scope
    }
}

自动填充属性,定义了相关字段并使用了注解,则启用相应的功能。

    //创建者
    @delegate:CreatedBy var createdBy: String? by korm()
    //创建时间
    @delegate:CreatedAt var createdAt: Date? by korm()
    //更新者
    @delegate:UpdatedBy var updatedBy: String? by korm()
    //更新时间
    @delegate:UpdatedAt var updatedAt: Date? by korm()
    //软删除
    @delegate:DeletedAt var deletedAt: Date? by korm()
    //乐观锁
    @delegate:Column(name = "version")
    @delegate:Version var version: Int? by korm()

涉及到操作者的属性会自动从实体类的getOperator方法获取

    fun getOperator(): String {
        return "zhangsanfeng"
    }

results matching ""

    No results matching ""