JAVA中Transient的作用:忽略序列化与数据库插入属性
springdatajpa注释(11) - 传递注释

在Java物种中,只要本类实现可序列的接口,然后在未序列化的属性之前添加一个关键字瞬态,那么当串行对象时,瞬态修改的属性将被忽略
当我们定义物理类时,有些属性不需要持续到数据库中。目前,我们可以使用瞬态注释来标记此字段而无需将其添加到数据库表中,即使物理类无法实现可搭接的接口,也不会实现可搭接的接口。它也会忽略属性
例如,作为下一个物理课
代码语言:JavaScript
复制
@Data
@Entity
@Table(name = "transient_tb")
public class TransientEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Transient
private String trrr;
}
查看实际数据库中表的字段。仍然没有TRRR字段
创建表TransIent_tb(ID BIGINT(20)不是null auto_increment,primary键(id))egine = innodb默认charset = utf8;
但是,我们通常要求物理类实现可序列的接口,因为这可以使物理类序列化和派生,并且通过流动流。
通常,当使用瞬态注释时,您会发现同时有两个包裹。在不同的情况下,您需要引入不同的软件包。
使用mySQL时需要引入什么
代码语言:JavaScript
复制
import javax.persistence.Transient;
您需要在使用MongoDB时介绍它
代码语言:JavaScript
复制
import org.springframework.data.annotation.Transient;
您需要注意不要引入错误的包裹,因此您无法达到想要的效果
这是因为
javax.persistence.transient是标准的JPA注释,它不适用于MongoDB,org.springframework.data.annotation.transient.transient是Spring的注释。
#映射 - 使用通知