In JPA-Entität können Sie Felder oder Methoden (Getter) annotieren. Die @Id
Annotation diktiert dies, was bedeutet, wenn Sie @Id
auf ein Feld setzen, sollten alle Ihre Anmerkungen auf Felder gehen, aber wenn Sie es zum Beispiel auf @Id Long getId()
setzen, dann sollten andere Anmerkungen folgen. Deshalb kann auch @Transient
auf eine Methode angewendet werden.
Zum Beispiel, wenn Sie diese haben
@Id
private Long id;
@Transient
private String someTransientField;
private Long getId() {
return this.id;
}
private String getSomeTransientField() {
return this.someTransientField;
}
dann someTransientField
als vorübergehende behandelt würden. Aber wenn @Id
auf dem Feld bleiben würde, und Sie @Transient
zu verschieben, dann würde someTransientField
als persistent behandelt werden, da @Id
auf dem Feld ist und daher alle anderen Anmerkungen erwartet werden, auf Feldern auch zu sein.
So ist der Fall, in dem @Transient
auf dem Verfahren arbeiten würde, ist dies
private Long id;
private String someTransientField;
@Id
private Long getId() {
return this.id;
}
@Transient
private String getSomeTransientField() {
return this.someTransientField;
}
Sie können transient Attribut von Getter-Methode oder Feld zugreifen, deshalb hat es – Saravana
Wie macht es Sinn, es auf Methoden zu erlauben? erlaubt nur auf Felder sollte nicht genug sein? – user2906555
Nein, Sie können für den Zugriff auf ein Feld mit Reflektions- oder Getter-Methoden programmieren. – Saravana