-
Notifications
You must be signed in to change notification settings - Fork 8
Nico edited this page Aug 17, 2022
·
7 revisions
Ourbatis的注解目前全部作用这Domain类中,这就意味着所有的注解都是为Mapper映射Domain到元数据而服务,另一方面,也和Wrapper相辅相成,下一章节将也会紧跟着介绍Wrapper,下面来看一下Ourbatis提供哪些注解:
-
@MapperBy
作用在Class上,指定Mapper映射接口类所在的包 -
@RenderIgnore
作用在Field上,标注字段被Ourbatis映射时忽略 -
@RenderName
可作用在Class和Field上,可以定义要映射的表名或者字段名 -
@RenderPrimary
作用在Field上,标注字段为主键
Mybatis是基于Mapper接口映射XML内定义的标签来实现SQL执行事件绑定的,大多数情况下,我们的Mapper接口会放在一个包下,然后使用Mybatis去扫描绑定。
但是如果我们的系统足够的复杂,例如多数据源,又或者根据不同的业务去放在不同的包下,这时就需要细节到Domain类上的Mapper类定义,MapperBy的作用就是如此!
@MapperBy("org.nico.ourbatis.mapper.user.UserMapper")
public class User{}
这个主键的作用很简单,将标注的Field在映射元数据的过程中忽略掉。
RenderName是自定义映射名称,它的内部有两个属性:
public @interface RenderName {
String value();
boolean render() default false;
}
-
value
代表着映射的名称 -
render
代表着是否继续参与渲染,也就是之后的包装器的渲染
value参数没什么好讲的,render要着重讲一下,在元数据映射的过程中我们有两种方式可以修饰元数据:注解和Wrapper,Ourbaits会优先处理注解,然后再使用Wrapper进行修饰渲染,如果我们两种方式同时使用,就会有叠加的效果,要控制效果是否叠加,就要设定render
这个参数来控制!
如果render为true,表示在注解自定的基础上仍然使用Wrapper去渲染,为false则反之。
标注在主键字段上,渲染的字段将会被添加到primaryColumns
集合中,不标注该注解的字段则会被添加到normalColumns
集合中。
紧跟着来看一下包装器Wrapper!