@Transient

Met de annotatie @Transient te plaatsen bij een member-variabele/veld kunnen we Hibernate zeggen dat de variabele niet bewaard moet worden in de tabel.

Bijvoorbeeld: Een klasse Person heeft een variabele birthday en een variabele age. We kunnen dan verkiezen de variabele age weg te laten omdat deze afgeleid kan worden van de variabele birthday.

Dit kan als volgt:

@Entity
public class Person {
   @Id
   private Long id;
   private String name;
   private LocalDate birthday;
   @Transient
   private int age;

   // noargs constructor, getters & setters, etc.
}

Annotaties bij entiteiten hebben we tot nu toe enkel bij de variabelen toegevoegd, al kan dit ook bij de getter-methode van elke variabele. Dan krijgen we het volgende:

@Entity
public class Person {
   private Long id;
   private String name;
   private LocalDate birthday;

   // noargs constructor, setters, etc.

   @Id
   public Long getId() {
      return id;
   }

   public String getName() {
      return name;
   }

   public LocalDate getBirthday() {
      return birthday;
   }

   @Transient
   public int getAge() {
      return (int) ChronoUnit.YEARS.between(LocalDate.now(), birthday);
   }
}