gpt4 book ai didi

kotlin - 在类jooq中使用主键和引用方法有什么好处

转载 作者:行者123 更新时间:2023-12-02 13:37:54 25 4
gpt4 key购买 nike

我开始学习。我有mssql服务器。我在服务器上创建了一些表示表的类。但是我不明白在表类中使用 getPrimaryKey getReferences 方法有什么好处?

class User : TableImpl<Record>("users") {

companion object {
val USER = User()
}

val id: TableField<Record, Int> = createField("id", SQLDataType.INTEGER)
val name: TableField<Record, String> = createField("name", SQLDataType.NVARCHAR(50))
val countryId: TableField<Record, Short> = createField("country_id", SQLDataType.SMALLINT)

override fun getPrimaryKey(): UniqueKey<Record> = Internal.createUniqueKey(this, id)

override fun getReferences(): MutableList<ForeignKey<Record, *>> =
mutableListOf(Internal.createForeignKey(primaryKey, COUNTRY, COUNTRY.id))

}

class Country : TableImpl<Record>("country") {

companion object {
val COUNTRY = Country()
}

val id: TableField<Record, Short> = createField("id", SQLDataType.SMALLINT)
val name: TableField<Record, String> = createField("name", SQLDataType.NVARCHAR(100))

override fun getPrimaryKey(): UniqueKey<Record> =
Internal.createUniqueKey(this, id)

}

最佳答案

生成的元数据是有用的东西的混合。

API用户给您

  • 到jOOQ,可以反射(reflect)该元数据的一些内部功能

  • 例如,对于 getPrimaryKey(),该方法可以帮助进行与CRUD相关的各种操作,如您在手册中所看到的:
    https://www.jooq.org/doc/latest/manual/sql-execution/crud-with-updatablerecords/simple-crud

    如果您没有使用代码生成器(它将为您生成所有这些方法),则无需将它们添加到您的类中。您可以将它们缩短为:
    class User : TableImpl<Record>("users") {
    companion object {
    val USER = User()
    }
    val id: Field<Int> = createField("id", SQLDataType.INTEGER)
    val name: Field<String> = createField("name", SQLDataType.NVARCHAR(50))
    val countryId: Field<Short> = createField("country_id", SQLDataType.SMALLINT)
    }

    但是,强烈建议您使用代码生成器来实现各种您可能无法获得的高级jOOQ功能。

    关于kotlin - 在类jooq中使用主键和引用方法有什么好处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52041681/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com