注解学习整理
未区分哪个注解是哪个包里,之后不断补充
@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 | 不会导致事务回滚的异常类名字数组 |