Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin jOOQ从数据类插入/更新_Kotlin_Jooq_Data Class - Fatal编程技术网

Kotlin jOOQ从数据类插入/更新

Kotlin jOOQ从数据类插入/更新,kotlin,jooq,data-class,Kotlin,Jooq,Data Class,jOOQ有一个很好的特性,可以让您将结果映射到数据类中: data class User(id: Int, email: String) val users: List<User> = ctx.select().from(USERS).fetchInto(User::class.java) 数据类用户(id:Int,email:String) val users:List=ctx.select().from(users).fetchInto(User::class.java)

jOOQ有一个很好的特性,可以让您将结果映射到数据类中:

data class User(id: Int, email: String)

val users: List<User> = ctx.select().from(USERS).fetchInto(User::class.java)
数据类用户(id:Int,email:String)
val users:List=ctx.select().from(users).fetchInto(User::class.java)
使用数据类中的自动数据映射,是否有类似的方法来编写
insert


更新如何?

调用各种“入”方法的相反方法,例如使用各种“自”方法将数据加载到记录中,例如,或:

val用户:用户=。。。
val记录:UserRecord=ctx.newRecord(用户,用户);
//使用语句
ctx.insertInto(USERS).set(record.execute();
update(USERS).set(record).where(…).execute();
//使用UpdateableRecord。请参阅Javadoc,了解以下各项:
record.insert();
record.update();
record.store();
record.merge();

由于您的数据类没有“脏标志”的概念,这将始终将
UserRecord
中的所有值设置为。如果需要,您可以重置已更改的标志。

Nice!在更新的情况下,它是否需要
.where
子句,或者它是否会自动这样做,例如使用记录的主键?我不确定我是否明白你所说的“脏标志”是什么意思,这是否意味着所有列都将在发布的UPDATE语句中指定,而不管它们是否实际更改?@JulesOlléon:当然,你需要一个
where
子句。jOOQ只知道通过从数据类中设置N列值来显式地设置了N列值,因此您的意图必须是将它们全部包含在更新中,而不管这些值是否已实际更改。