Skip to content
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上,标注字段为主键

MapperBy

Mybatis是基于Mapper接口映射XML内定义的标签来实现SQL执行事件绑定的,大多数情况下,我们的Mapper接口会放在一个包下,然后使用Mybatis去扫描绑定。

但是如果我们的系统足够的复杂,例如多数据源,又或者根据不同的业务去放在不同的包下,这时就需要细节到Domain类上的Mapper类定义,MapperBy的作用就是如此!

@MapperBy("org.nico.ourbatis.mapper.user.UserMapper")
public class User{}

RenderIgnore

这个主键的作用很简单,将标注的Field在映射元数据的过程中忽略掉。

RenderName

RenderName是自定义映射名称,它的内部有两个属性:

public @interface RenderName {
	String value();
	boolean render() default false;
}
  • value代表着映射的名称
  • render代表着是否继续参与渲染,也就是之后的包装器的渲染

value参数没什么好讲的,render要着重讲一下,在元数据映射的过程中我们有两种方式可以修饰元数据:注解和Wrapper,Ourbaits会优先处理注解,然后再使用Wrapper进行修饰渲染,如果我们两种方式同时使用,就会有叠加的效果,要控制效果是否叠加,就要设定render这个参数来控制!

如果render为true,表示在注解自定的基础上仍然使用Wrapper去渲染,为false则反之。

RenderPrimary

标注在主键字段上,渲染的字段将会被添加到primaryColumns集合中,不标注该注解的字段则会被添加到normalColumns集合中。

紧跟着来看一下包装器Wrapper!

Clone this wiki locally