由於 vok-orm 非 JPA、Hibernate 那一类的框架,查询也好删除也好,并不会有一连串的关连式资料的连动作业。笔者个人对这样的方式是非常偏好的,从资料表的建立到查询、资料删除,都不会有看不到的背景执行作业。
一般而言,删除主表必需连同副表一并删除。在本例中学生资料是主表,学生成绩为副表,刚除学生时,学生成绩必需一并删除。
请打开 GradeViewComponent.kt
,在原来的表格最後加上删除
按键
Student.getById(studentId).grades.fetch().forEach {grade ->
grades.apply {
div("table") {
div("tr") {
div("td") { label("${grade.description}") }
div("td") { label("${grade.mandarin}") }
div("td") { label("${grade.english}") }
div("td") { label("${grade.math}") }
div("td") { label("${grade.pe}") }
button("删除"){
addThemeVariants(ButtonVariant.LUMO_TERTIARY, ButtonVariant.LUMO_SMALL )
onLeftClick { grade.delete(); refresh() }
}
}
}
}
}
请打开Student.kt
,复写delete()
方法
override fun delete() {
Grade.deleteBy { Grade::student_id eq id }
super.delete()
}
当主表删除时须连带删除附表,这里复写Student 的delete()
方法,在删除学生资料前先删除成绩资料。
>>: Material UI in React [ Day 25 ] Styles Advanced
大家好! 如果要深入查询一个多层物件,一般都是用 Object.keys 等方法,今天就是要简化这样...
昨日安装完Anaconda後,今天要继续安装需要的lib, (1)先用管理者权限打开Anaconda...
这是第一次在公开的地方撰写 JavaScript 相关的技术文章,若有错误或需要补充的地方,也欢迎在...
昨天我们介绍了如何用 KDoc 语法标记程序码并用 Dokka 来产生 API 文件,今天我们要将产...
毕竟已经在四月份时决心要再继续写程序,而且既然都在上六角程序体验营,不如就顺便照着老师的说明练练英打...