表名和实体注解:注解为实体,表名
@Entity
@Table
(name =
"cs_ad"
)
-----------------------------------------------
字段默认注解@basic
----------------------------------------------
字符串注解 :
非空"",
最大长度,非null
@NotEmpty
@Length
(max = 200)
@Column
(nullable =
false
)
巨大字符串
@Lob
------------------------------------------------
取消持久化
@Transient
@Transient表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性.
如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient,否则,ORM框架默认其注解为@Basic
示例:
//根据birth计算出age属性
@Transient
public int getAge() {
return getYear(new Date()) - getYear(birth);
}
如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient,否则,ORM框架默认其注解为@Basic
示例:
//根据birth计算出age属性
@Transient
public int getAge() {
return getYear(new Date()) - getYear(birth);
}
这个东东还是挺有用的。
验证框架:不能为空,并且满足正则表达式,长度最小和最大值,不可以为null,唯一性,不可以更新
@NotEmpty
(groups = Save.
class
)
@
Pattern(regexp =
"^[0-9a-z_A-Z\\u4e00-\\u9fa5]+$"
)
@Length
(min = 2, max = 20)
@Column
(nullable =
false
, updatable =
false
, unique =
true
, length = 100)
------------------------------------------
进行成员JSON映射声明,属于jackson机制
@JsonAutoDetect
(fieldVisibility = Visibility.
NONE
, getterVisibility = Visibility.
NONE
, setterVisibility = Visibility.
NONE
, isGetterVisibility = Visibility.
NONE
, creatorVisibility = Visibility.
NONE
)
jackson的自动检测机制
jackson允许使用任意的构造方法或工厂方法来构造实例
使用@JsonAutoDetect(作用在类上)来开启/禁止自动检测
fieldVisibility:字段的可见级别
ANY:任何级别的字段都可以自动识别
NONE:所有字段都不可以自动识别
NON_PRIVATE:非private修饰的字段可以自动识别
PROTECTED_AND_PUBLIC:被protected和public修饰的字段可以被自动识别
PUBLIC_ONLY:只有被public修饰的字段才可以被自动识别
DEFAULT:同PUBLIC_ONLY
-----------------------------------------------------------------
声明实体监听器:用于实体修改时做处理(切面编程)
@
EntityListeners(EntityListener.
class
)
---------------------------------------------------------
声明该类为实体父类··不会映射单独的而··而是把字段映射到子类表中
@
MappedSuperclass
---------------------------------------------------------------------
@JsonProperty,序列化/反序列化都有效;
@JsonProperty
----------------------------------------------
4. @DocumentId
用于保证索引实体的单一性。必须存储而且必须不能被分词(相当于加了@Field(store=Store.YES, index=Index.UN_TOKENIZED))
采用JPA方式时,如果指定了@Id则不再需要标注该注解。
@GeneratedValue
(strategy=GenerationType.
AUTO
)
----------------------------------------------------------
主键注解
/**
* 获取ID
*
*
@return
ID
*/
@JsonProperty
@DocumentId
@Id
@GeneratedValue
(strategy=GenerationType.
AUTO
)
-------------------------------------------------------------------------------------
数据库索引有关
@Field
(store = Store.
YES
, index = Index.
UN_TOKENIZED
)
------------------------------------------------------------
时间索引,把时间转为字符串再做索引
@DateBridge
(resolution = Resolution.
SECOND
)
枚举类型的注解
@Enumerated
@Column
(columnDefinition =
"tinyint"
, nullable =
false
)
------------------------------------------------------------------------------------
一对一外键关联主键
@OneToOne
(fetch = FetchType.
EAGER
, cascade = CascadeType.
REMOVE
)
@JoinColumn
(name =
"uid"
, nullable =
false
)
boolean类型注解
@Column
(columnDefinition =
"bit"
, nullable =
false
)
------------------------------------------------------------------
整型注解
@Column
(
)
-----------------------------------------------
多对一注解
@ManyToOne
(fetch = FetchType.
EAGER
)
@JoinColumn
(name =
"credit_level"
, updatable =
false
)
-----------------------------------------------------------------------------