直接修改中间表
简述
首先,中间表被对象模型隐藏,没有与之直接对应的实体类型。此问题已在查询中间表一文中被阐述,此处不作重复。
另外,在Save指令章节中,我们介绍了save指令。它能对比数据库现有数据和用户要保存的新数据,如果某个基于中间表的关联属性发生了变化,中间表就会被修改。
诚然,Save指令功 能非常强大,对中间表的修改只是其中很小的一个功能点。然而,有时候,我们只需要简单地对中间表进行插入或删除操作,我们不需要Save指令那么强大的功能。
Jimmer允许开发人员用更简单的方式,直接对中间表的数据进行插入和删除。
插入关联
- Java
- Kotlin
sqlClient
.getAssociations(BookProps.AUTHORS)
.save(12L, 3L);
sqlClient
.getAssociations(Book::authors)
.save(12L, 3L)
生成的SQL如下
insert into
BOOK_AUTHOR_MAPPING(
BOOK_ID, AUTHOR_ID
)
values (?, ?)
这个例子演示如何使用关联属性Book.authors操作中间表。
同理我们也可以通过关联属性Authors.books达到相同目的:
- Java
- Kotlin
sqlClient
.getAssociations(AuthorProps.BOOKS)
.save(3L, 12L);
sqlClient
.getAssociations(Author::books)
.save(3L, 12L)