hibernate注解ENTITY


表名和实体注解:注解为实体,表名
@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);
    }

这个东东还是挺有用的。


验证框架:不能为空,并且满足正则表达式,长度最小和最大值,不可以为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 )
-----------------------------------------------------------------------------

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值