@Transient - JPA annotation

@Transient - JPA annotation specifies that the property or field is not persistent. It is used to annotate a property or field of an entity class, mapped superclass, or embeddable class.

@Transient - JPA annotation Example 1

The @Transient annotation is used to specify that a given entity attribute should not be persisted.

Sometimes, we may want to make a field non-persistent. We can use the @Transient annotation to do so. It specifies that the field will not be persisted.

So let's annotate the field age with the @Transient annotation:

@Entity
@Table(name="STUDENT")
public class Student {
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private Long id;
    
    @Column(name="STUDENT_NAME", length=50, nullable=false)
    private String name;
    
    @Transient
    private Integer age;
    
    // other fields, getters and setters
}

As a result, the field age will not be persisted to the table.

@Transient - JPA annotation Example 2

In the below example, we are not persisting currentUser instance in Employee entity:

Employee.java

    @Entity
    public class Employee {
        @Id 
        private int id;
        @Transient 
        private User currentUser;
        ...
    }

User.java

    @Entity
    public class User {
        @Id 
        private int id;
    }

References

Comments