您的位置:首页 > 其它

hibernate注解ENTITY

2016-10-12 19:44 211 查看
[align=left]
[/align]
[align=left]表名和实体注解:注解为实体,表名[/align]
[align=left]@Entity[/align]
@Table(name =
"cs_ad"
)
[align=left]-----------------------------------------------[/align]
[align=left]字段默认注解@basic[/align]
[align=left]----------------------------------------------[/align]
[align=left]字符串注解 :非空"",最大长度,非null[/align]
[align=left]     @NotEmpty  [/align]
   
@Length(max = 200)
   
@Column(nullable =
false)
[align=left]巨大字符串[/align]
  
@Lob
[align=left]------------------------------------------------[/align]
[align=left]
[/align]
[align=left]取消持久化[/align]
  
@Transient
@Transient表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性.

如果一个属性并非数据库表的字段映射,就务必将其标示为@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)
[align=left]
[/align]
[align=left]------------------------------------------[/align]
[align=left]进行成员JSON映射声明,属于jackson机制[/align]
@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
[align=left]-----------------------------------------------------------------[/align]
[align=left]声明实体监听器:用于实体修改时做处理(切面编程)[/align]
@EntityListeners(EntityListener.
class)
[align=left]---------------------------------------------------------[/align]
[align=left]声明该类为实体父类··不会映射单独的而··而是把字段映射到子类表中[/align]
[align=left]@MappedSuperclass[/align]
[align=left]---------------------------------------------------------------------[/align]
[align=left]@JsonProperty,序列化/反序列化都有效;[/align]

[align=left]@JsonProperty[/align]
[align=left]----------------------------------------------[/align]

4. @DocumentId
  用于保证索引实体的单一性。必须存储而且必须不能被分词(相当于加了@Field(store=Store.YES, index=Index.UN_TOKENIZED))

  采用JPA方式时,如果指定了@Id则不再需要标注该注解。
@GeneratedValue
(strategy=GenerationType.AUTO)
[align=left]----------------------------------------------------------[/align]
[align=left]主键注解[/align]

            
/**
[align=left]             * 获取ID[/align]
[align=left]             *[/align]
             *
@return
ID
[align=left]             */[/align]
            
@JsonProperty
            
@DocumentId
            
@Id

            
@GeneratedValue(strategy=GenerationType.AUTO)
[align=left]-------------------------------------------------------------------------------------[/align]
[align=left]数据库索引有关[/align]
            
@Field(store = Store.YES,
index = Index.
UN_TOKENIZED)
[align=left]------------------------------------------------------------[/align]
[align=left]时间索引,把时间转为字符串再做索引[/align]
@DateBridge
(resolution = Resolution.SECOND)

枚举类型的注解
[align=left] @Enumerated[/align]
   
@Column(columnDefinition =
"tinyint", nullable =
false)
[align=left]------------------------------------------------------------------------------------[/align]
[align=left]一对一外键关联主键[/align]
@OneToOne(fetch = FetchType.EAGER,
cascade = CascadeType.REMOVE)
@JoinColumn(name
=
"uid", nullable =
false)

boolean类型注解
@Column
(columnDefinition =
"bit", nullable =
false)
[align=left]------------------------------------------------------------------[/align]
[align=left]整型注解[/align]
 
@Column()
[align=left]-----------------------------------------------[/align]
[align=left]多对一注解[/align]

 @ManyToOne(fetch
= FetchType.
EAGER)

   
@JoinColumn(name =
"credit_level", updatable =
false)
[align=left]-----------------------------------------------------------------------------[/align]
[align=left]
[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: