注解整理

来源:互联网 发布:用友软件t3标准版 编辑:程序博客网 时间:2024/05/18 01:54

注解学习整理

未区分哪个注解是哪个包里,之后不断补充

@AutoConfig

@Target({ TYPE, PACKAGE })@Retention(RUNTIME)public @interface AutoConfig {    String namespace() default "";    String actionName() default "";    String fileupload() default "";    boolean lenientPathVariable() default false;}

映射规则

URL到Action映射

{namespace}/{actionName}/{methodName}/{id}

@AutoConfig(namespace="/myapp"actionName="prdt")

namespace

namespace 可选, 默认是 /, 用来划分命名空间防止不同模块间的 actionName 同名冲突, 匹配规则会优先选择深度最大的

比如 /a/b/c 会比 /a/b 优先级高

@AutoConfig(namespace = "/a/b",actionName = "c")@AutoConfig(namespace = "/a",actionName = "b")

actionName

默认的actionName是首字母小写后的实体类名,可以自己覆盖。用来对应具体的action类.相同namespace和actionName的类,可以用spring的@Order注解来标注优先级

*methodName

如果不包含则调用的是action的 execute 方法

*id

为了美化url, 等同于在url后面带上 id 请求参数

@Entity


说明该类为一个实体,有对应表生成。

@Richtable

类 富表属性

order

排序,desc/asc

@Richtable(order = "quantity desc,name asc")

@searchable

可排序

@GeneratedValue

用于标注主键的生成策略
@GeneratedValue(strategyGenerationType.AUTO)

@Id

标注用于声明一个实体类的属性映射为数据库的主键列

@NaturalId

应用重启后, 数据库会在 该字段上建立一个唯一索引。创建页面也会检查唯一。默认不可修改

mutable:true可修改字段,false不可修改

@UiConfig

Ui设置,实体表配置信息。成员。

width

该字段宽度,形如”100px”

alias

别名

type

字段在表格中的类型,创建时同样类型显示。

input textarea enum select multiselect checkbox listpick dictionary schema

Description

在字段显示时,出现’?’符号,鼠标停留显示description内容

hidden

字段是否隐藏 true隐藏

hiddenInList

当列表拥挤时,把非重要信息从列表里隐藏

hiddenInList = @Hidden(true)hiddenInList = @Hidden(expression = "value == 0")

group

字段属性划分为查询类别(在列表上方)

regex

正则表达检查匹配字段

templateName

template

freemarker模板+前端语言内容显示,值为value

inputTemplate

同上,输入时模板

viewTemplate

同上,展示时模板

showsum

结尾新增一统计行,统计该成员之和。true/false

这种搜索利用数据库SQL的like功能,尽量从性能角度考虑。

searchable

增加搜索功能。需要在实体类的@Richtable和字段的@UiConfig上设置searchable = true

可和字段的@SearchableProperty比较实用

@SearchableProperty

字段使用,elasticsearch全文搜索,否则利用Like搜索
需要在实体类上@Searchable,字段上设置@SearchableProperty

@Enumerated

默认EnumType.ORDINAL,存枚举顺序

@OrderBy

字段排序,对象子属性排序

@PrePersist

可用于使用JPA之前记录无关业务的字段

@PreUpdate

类似上理

@JoinColumn

注解的是保存表与表关系的字段

name

表关系的字段名称(外键)

referencedColumnName

表示被关联表中的关联字段

@Column

标识实体类中属性与数据表中字段的对应关系

napedBy

属性用来指明所映射的实体,它的值为所关联实体中该属性的名称

@Column(mapedBy = "company")

name

属性定义了被标注字段在数据库表中对应字段的名称

unique

属性表示该字段是否为唯一标识。默认为false。

nullable

属性表示该字段是否可以为null值

insertable

表示在使用”insert”脚本插入数据时,是否需要插入该字段的值

updatable

类似insertable

columnDefinition

表示创建表时,该字段创建的SQL语句

table

属性定义了包含当前字段的表名

length

表示字段的长度,当字段类型为varchar时才有效

precision

当字段类型double时,表示数值的总长度

scale

表示小数点所占的位数

@Transient

表示该字段不进行序列化

@Lob

hibernate,表示该字段为大数据属性

@ManyToOne@OneToOne@OneToMany@ManyToMany

fetch

FetchType.LAZY

懒加载 用时加载

FetchType.EAGER  

cascade

选择级联属性,可用’,’分割多个选项
例如order对象里包含items对象

@OneToOne(cascade = CascadeType.ALL)

CascadeType.PERSIST(级联保存)对order对象保存时也对items里的对象也会保存。

CascadeType.MERGE(级联合并更新)若items属性修改了那么order对象保存时同时修改items里的对象。

CascadeType.REMOVE(级联删除)对order对象删除也对items里的对象也会删除。

CascadeType.REFRESH(级联刷新)获取order对象里也同时也重新获取最新的items时的对象。

CascadeType.ALL(级联)

targetManager

@Transactional

Spring 事务注解

默认情况下,只有来自外部的方法调用才会被AOP代理捕获。即类内部的方法调用不会引起事务行为。

属性 类型 描述 value String 可选的限定描述符,指定使用的事务管理器 propagation enum: Propagation 可选的事务传播行为设置 isolation enum: Isolation 可选的事务隔离级别设置 readOnly boolean 读写或只读事务,默认读写 timeout int (in seconds granularity) 事务超时时间设置 rollbackFor Class对象数组,必须继承自Throwable 导致事务回滚的异常类数组 rollbackForClassName 类名数组,必须继承自Throwable 导致事务回滚的异常类名字数组 noRollbackFor Class对象数组,必须继承自Throwable 不会导致事务回滚的异常类数组 noRollbackForClassName 类名数组,必须继承自Throwable 不会导致事务回滚的异常类名字数组