此版本仍在开发中,尚不被认为是稳定的。对于最新的稳定版本,请使用 Spring Data Relational 3.5.2! |
MyBatis 集成
CRUD作和查询方法可以委托给 MyBatis。 本节介绍如何配置 Spring Data JDBC 以与 MyBatis 集成,以及要遵循哪些约定来移交查询的运行以及与库的映射。
配置
将 MyBatis 正确插入 Spring Data JDBC 的最简单方法是导入MyBatisJdbcConfiguration
进入您的应用程序配置:
@Configuration
@EnableJdbcRepositories
@Import(MyBatisJdbcConfiguration.class)
class Application {
@Bean
SqlSessionFactoryBean sqlSessionFactoryBean() {
// Configure MyBatis here
}
}
如您所见,您需要声明的只是SqlSessionFactoryBean
如MyBatisJdbcConfiguration
依赖于SqlSession
bean 在ApplicationContext
最终。
使用约定
对于 中的每个作CrudRepository
,Spring Data JDBC 运行多个语句。
如果有SqlSessionFactory
在应用程序上下文中,Spring Data 会检查每个步骤是否SessionFactory
提供了一个声明。
如果找到,则使用该语句(包括其配置的与实体的映射)。
语句的名称是通过将实体类型的完全限定名称与Mapper.
和String
确定语句的类型。
例如,如果org.example.User
,Spring Data JDBC 会查找名为org.example.UserMapper.insert
.
运行语句时,[MyBatisContext
] 作为参数传递,这使得语句可以使用各种参数。
下表描述了可用的 MyBatis 语句:
名称 | 目的 | CrudRepository 可能触发此语句的方法 | 中可用的属性MyBatisContext |
---|---|---|---|
|
插入单个实体。这也适用于聚合根引用的实体。 |
|
|
|
更新单个实体。这也适用于聚合根引用的实体。 |
|
|
|
删除单个实体。 |
|
|
|
删除用作给定属性路径前缀的类型的任何聚合根引用的所有实体。 请注意,用于为语句名称添加前缀的类型是聚合根的名称,而不是要删除的实体的名称。 |
|
|
|
删除用作前缀的类型的所有聚合根 |
|
|
|
删除具有给定属性路径的聚合根引用的所有实体 |
|
|
|
按 ID 选择聚合根 |
|
|
|
选择所有聚合根 |
|
|
|
按 ID 值选择一组聚合根 |
|
|
|
选择另一个实体引用的一组实体。引用实体的类型用于前缀。引用的实体类型用作后缀。此方法已弃用。用 |
都 |
|
|
选择另一个实体通过属性路径引用的一组实体。 |
都 |
|
|
选择所有聚合根,已排序 |
|
|
|
选择聚合根的页面,可选择排序 |
|
|
|
计算用作前缀的类型的聚合根的数量 |
|
|