@Transient 注解对方法意味着啥?
Posted
技术标签:
【中文标题】@Transient 注解对方法意味着啥?【英文标题】:What does @Transient annotation mean for methods?@Transient 注解对方法意味着什么? 【发布时间】:2014-02-23 23:14:41 【问题描述】:所以我了解到,Java 中的 transient
关键字意味着实体不会持久化,而 JPA 中的 @Transient
注释意味着不会将字段持久化到数据库中。但是@Transient
应用于方法而不是变量意味着什么?
这是我在我们的代码中找到它的地方:
@Transient
public boolean getTabFoo()
if ((this.viewFoo1 != ACCESS_NONE)
|| (this.viewFoo2 != ACCESS_NONE) || (this.viewFoo3 != ACCESS_NONE)
|| (this.getViewFoo4() != ACCESS_NONE))
return true;
return false;
【问题讨论】:
【参考方案1】:所有字段级 JPA 注释都可以放置在字段或属性上,它确定实体的访问类型(即 JPA 提供者将如何访问该实体的字段 - 直接或使用 getter/setter)。
默认访问类型由 @Id
注释的位置决定,并且对于实体的所有字段(或继承实体的层次结构)应该是一致的,除非某些字段被 @Access
显式覆盖。
因此,getter 上的 @Transient
与字段上的 @Transient
具有相同的含义 - 如果您的实体的默认访问类型是属性访问,则您需要使用 @Transient
注释所有不对应于持久属性的 getter .
【讨论】:
谢谢你,这样就更清楚了。所以它只被用在一个方法上,因为它是一个吸气剂,那么呢?【参考方案2】:这是一个合适的 getter 方法,默认情况下 JPA 将假定它绑定到实体属性。如果您不希望 JPA 将 getter 视为属性,则将 @Transient
注释应用于该方法。
【讨论】:
以上是关于@Transient 注解对方法意味着啥?的主要内容,如果未能解决你的问题,请参考以下文章
@Transient 注解、@org.springframework.data.annotation.Transient 注解、transient 关键字和密码存储
Hibernate JPA中@Transient@JsonIgnoreProperties@JsonIgnore@JsonFormat@JsonSerialize等注解解释