Hibernate JPA中@Transient@JsonIgnoreProperties@JsonIgnore@JsonFormat@JsonSerialize等注解解释

Posted 习惯沉淀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hibernate JPA中@Transient@JsonIgnoreProperties@JsonIgnore@JsonFormat@JsonSerialize等注解解释相关的知识,希望对你有一定的参考价值。

1、@Transient

@Transient表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性;
如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient,否则ORM框架默认其注解为@Basic;

//表示该字段在数据库表中没有

@Transient
public int getAge() {
 return 1+1;
}

 

Jackson相关:

2、@JsonIgnoreProperties

此注解是类注解,作用是json序列化时将java bean中的一些属性忽略掉,序列化和反序列化都受影响。

 

3、@JsonIgnore

此注解用于属性或者方法上(最好是属性上),作用和上面的@JsonIgnoreProperties一样。

 

4、@JsonFormat

此注解用于属性或者方法上(最好是属性上),可以方便的把Date类型直接转化为我们想要的模式,比如@JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss")

 

5、@JsonSerialize

此注解用于属性或者getter方法上,用于在序列化时嵌入我们自定义的代码,比如序列化一个double时在其后面限制两位小数点。

 

6、@JsonDeserialize

此注解用于属性或者setter方法上,用于在反序列化时可以嵌入我们自定义的代码,类似于上面的@JsonSerialize

以上是关于Hibernate JPA中@Transient@JsonIgnoreProperties@JsonIgnore@JsonFormat@JsonSerialize等注解解释的主要内容,如果未能解决你的问题,请参考以下文章

JPA Hibernate jpa spring data jpa

Hibernate/JPA 是不是考虑了瞬态修饰符(而不是注释)

hibernate里面实体类中能不能有一个字段不同步到数据库中去

JPA之@Transient

jpa 实体bean中如何定义非映射字段

kotlin 的 JPA:lazy 和 @Transient 不适用于休眠