@@ -388,8 +388,8 @@ try (SqlSession session = sqlSessionFactory.openSession()) {
388
388
<td >复杂类型的单个属性映射。属性:
389
389
<code >select</code >,指定可加载合适类型实例的映射语句(也就是映射器方法)全限定名;
390
390
<code >fetchType</code >,指定在该映射中覆盖全局配置参数 <code >lazyLoadingEnabled</code >;
391
- <code >resultMap</code >(3.5.5以上可用), which is the fully qualified name of a result map that map to a single container object from select result ;
392
- <code >columnPrefix</code >(3.5.5以上可用),结果集的完全限定名,该结果映射到查询结果中的集合对象;
391
+ <code >resultMap</code >(3.5.5以上可用), 结果集的完全限定名,该结果映射到查询结果中的集合对象 ;
392
+ <code >columnPrefix</code >(3.5.5以上可用),在嵌套的结果集中对所查询的列进行分组的列前缀。
393
393
<span class =" label important" >提示</span > 注解 API 不支持联合映射。这是由于 Java 注解不允许产生循环引用。</td >
394
394
</tr >
395
395
<tr >
@@ -398,7 +398,7 @@ try (SqlSession session = sqlSessionFactory.openSession()) {
398
398
<td ><code >< collection> </code ></td >
399
399
<td >复杂类型的集合属性映射。属性:
400
400
<code >select</code >,指定可加载合适类型实例集合的映射语句(也就是映射器方法)全限定名;
401
- <code >fetchType</code >,指定在该映射中覆盖全局配置参数 <code >lazyLoadingEnabled</code >
401
+ <code >fetchType</code >,指定在该映射中覆盖全局配置参数 <code >lazyLoadingEnabled</code > ;
402
402
<code >resultMap</code >(3.5.5以上可用),结果集的完全限定名,该结果映射到查询结果中的集合对象;
403
403
<code >columnPrefix</code >(3.5.5以上可用),在嵌套的结果集中对所查询的列进行分组的列前缀。
404
404
<span class =" label important" >提示</span > 注解 API 不支持联合映射。这是由于 Java 注解不允许产生循环引用。</td >
@@ -465,8 +465,8 @@ try (SqlSession session = sqlSessionFactory.openSession()) {
465
465
允许构建动态 SQL。这些备选的 SQL 注解允许你指定返回 SQL 语句的类和方法,以供运行时执行。(从 MyBatis 3.4.6 开始,可以使用 <code >CharSequence</code > 代替 <code >String</code > 来作为返回类型)。当执行映射语句时,MyBatis 会实例化注解指定的类,并调用注解指定的方法。你可以通过 <code >ProviderContext</code > 传递映射方法接收到的参数、"Mapper interface type" 和 "Mapper method"(仅在 MyBatis 3.4.5 以上支持)作为参数。(MyBatis 3.4 以上支持传入多个参数)
466
466
属性:<code >value</code >、<code >type</code >、<code >method</code >、<code >databaseId</code >。
467
467
<code >value</code > and <code >type</code > 属性用于指定类名
468
- (The <code >type</code > attribute is alias for <code >value</code >, you must be specify either one.
469
- But both attributes can be omit when specify the <code >defaultSqlProviderType</code > as global configuration )。
468
+ (<code >type</code > 属性是 <code >value</code > 的别名, 你必须指定任意一个。
469
+ 但是你如果在全局配置中指定 <code >defaultSqlProviderType</code > ,两个属性都可以忽略 )。
470
470
<code >method</code > 用于指定该类的方法名(从版本 3.5.1 开始,可以省略 <code >method</code > 属性,MyBatis 将会使用 <code >ProviderMethodResolver</code > 接口解析方法的具体实现。如果解析失败,MyBatis 将会使用名为 <code >provideSql</code > 的降级实现)。<span class =" label important" >提示</span > 接下来的“SQL 语句构建器”一章将会讨论该话题,以帮助你以更清晰、更便于阅读的方式构建动态 SQL。
471
471
<code >databaseId</code >(3.5.5以上可用), 如果有一个配置好的 <code >DatabaseIdProvider</code >,
472
472
MyBatis 会加载不带 <code >databaseId</code > 属性和带有匹配当前数据库 <code >databaseId</code > 属性的所有语句。如果同时存在带 <code >databaseId</code > 和不带 <code >databaseId</code > 属性的相同语句,则后者会被舍弃。
@@ -625,7 +625,7 @@ class UserSqlProvider implements ProviderMethodResolver {
625
625
}
626
626
}]]> </source >
627
627
628
- <p >这个例子展现了如何在声明注解时使用<code >databaseId</code >属性(3.5.5后可用):</p >
628
+ <p >这个例子展现了如何在声明注解时使用 <code >databaseId</code > 属性(3.5.5后可用):</p >
629
629
<source ><![CDATA[
630
630
@Select(value = "SELECT SYS_GUID() FROM dual", databaseId = "oracle") // 如果 DatabaseIdProvider 提供的是 "oracle",使用这条语句
631
631
@Select(value = "SELECT uuid_generate_v4()", databaseId = "postgres") // 如果 DatabaseIdProvider 提供的是 "postgres",使用这条语句
0 commit comments