@Transient注解的原理其实比较简单。当使用JPA进行持久化时,JPA实现会扫描实体类的注解信息,根据注解信息来进行相应的持久化操作。
在遇到被@Transient注解标记的属性时,JPA实现会将这些属性视作临时数据,不会将其持久化到数据库中。这是因为@Transient注解告诉JPA实现忽略这些属性,不将其映射到数据库表的列上。
在内存中,这些被@Transient注解标记的属性仍然会存在,并且可以在应用程序中正常使用。然而,当对实体类进行持久化操作时,JPA实现会忽略这些被@Transient注解标记的属性,从而达到不更新到数据库的效果。
总的来说,@Transient注解的原理就是告诉JPA实现在持久化操作时忽略被标记的属性,不将其保存到数据库中。