为什么 JPA Transient 注解在 Target 中有方法?
Why JPA Transient annotation have method in Target?
任何人都可以使用示例解释为什么 JPA 中的 @Transient 注释也有 @Target method 吗?
我指的是文档 http://docs.oracle.com/javaee/5/api/javax/persistence/Transient.html
@Target(value={METHOD,FIELD})
提前致谢!
在 JPA 实体中,您可以注释字段或方法 (getter)。 @Id
注释规定了这一点,这意味着如果你将 @Id
放在一个字段上,那么你所有的注释都应该放在字段上,但是如果你把它放在 @Id Long getId()
上,那么其他注释应该跟随.这就是 @Transient
也可以在方法上的原因。
例如,如果你有这个
@Id
private Long id;
@Transient
private String someTransientField;
private Long getId() {
return this.id;
}
private String getSomeTransientField() {
return this.someTransientField;
}
然后 someTransientField
将被视为瞬态。但是如果 @Id
会留在场上,而你将 @Transient
移动到 private String getSomeTransientField()
那么 someTransientField
将被视为持久的,因为 @Id
在场上并且因此,所有其他注释也应出现在字段上。
所以 @Transient
对方法起作用的情况是这样
private Long id;
private String someTransientField;
@Id
private Long getId() {
return this.id;
}
@Transient
private String getSomeTransientField() {
return this.someTransientField;
}
@Target
注释允许您定义可以使用此注释的位置,例如,class、字段、方法等指示可以使用annotated 注释类型。
@Target(value={METHOD,FIELD})
表示注解只能用于类型(通常是方法和字段)之上。您可以将目标放在一起,这样注解就可以同时用于两者 class es、方法和字段。
在 JPA 中 @Target
– 标记另一个注解 @Transient
以限制可以将注解应用于哪种 java 元素。
表示注解可以用在Field
或method
上。
如果该字段被注释,该字段将使用反射访问。
如果 method(getter) 被注解,那么 getter 方法将被用来访问它。
任何人都可以使用示例解释为什么 JPA 中的 @Transient 注释也有 @Target method 吗?
我指的是文档 http://docs.oracle.com/javaee/5/api/javax/persistence/Transient.html
@Target(value={METHOD,FIELD})
提前致谢!
在 JPA 实体中,您可以注释字段或方法 (getter)。 @Id
注释规定了这一点,这意味着如果你将 @Id
放在一个字段上,那么你所有的注释都应该放在字段上,但是如果你把它放在 @Id Long getId()
上,那么其他注释应该跟随.这就是 @Transient
也可以在方法上的原因。
例如,如果你有这个
@Id
private Long id;
@Transient
private String someTransientField;
private Long getId() {
return this.id;
}
private String getSomeTransientField() {
return this.someTransientField;
}
然后 someTransientField
将被视为瞬态。但是如果 @Id
会留在场上,而你将 @Transient
移动到 private String getSomeTransientField()
那么 someTransientField
将被视为持久的,因为 @Id
在场上并且因此,所有其他注释也应出现在字段上。
所以 @Transient
对方法起作用的情况是这样
private Long id;
private String someTransientField;
@Id
private Long getId() {
return this.id;
}
@Transient
private String getSomeTransientField() {
return this.someTransientField;
}
@Target
注释允许您定义可以使用此注释的位置,例如,class、字段、方法等指示可以使用annotated 注释类型。
@Target(value={METHOD,FIELD})
表示注解只能用于类型(通常是方法和字段)之上。您可以将目标放在一起,这样注解就可以同时用于两者 class es、方法和字段。
在 JPA 中 @Target
– 标记另一个注解 @Transient
以限制可以将注解应用于哪种 java 元素。
表示注解可以用在Field
或method
上。
如果该字段被注释,该字段将使用反射访问。
如果 method(getter) 被注解,那么 getter 方法将被用来访问它。