Kotlin jOOQ从数据类插入/更新
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)
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列值,因此您的意图必须是将它们全部包含在更新中,而不管这些值是否已实际更改。