注解...

注解

Mybatis plus @TableName实体中添加非数据库字段报错,如增加请在字段上加注解 @TableField(exist = false)

@Transient

@Transient的作用是指定该属性或字段不是永久的。 它用于注释实体类,映射超类或可嵌入类的属性或字段。

它既可以写在属性的上面,也可以写在属性get方法的上面。
在实际的使用过程中,如果属性没有get方法。下面这种写法是没有问题的。数据库表中不会有test字段。

@Transient
    private String test;

如果有get方法,就要把@Transient注解写到get方法上面,下面这种写法也是没有问题的。

private String test;
    
    @Transient
    public String getTest() {
        return test;
    }

    public void setTest(String test) {
        this.test = test;
    }

但是如果test属性有get方法,你又把@Transient写在了属性上面,数据库表中就会新增一个字段。

以类作为属性的@Transient使用。

private MemberConfig memberConfig;
    
    @Transient
    public MemberConfig getMemberConfig() {
        MemberConfig memberConfig = new MemberConfig(getAttr());
        return memberConfig;
    }

    public void setMemberConfig(MemberConfig memberConfig) {
        this.getAttr().putAll(memberConfig.getAttr());
    }

当然private MemberConfig memberConfig;其实是没有用的,不写也可以。

(https://blog.csdn.net/OrangQceee/article/details/80446441)

加在属性声明上,

1 serialization会被忽略掉

Java的serialization提供了一种持久化对象实例的机制。当持久化对象时,可能有一个特殊的对象数据成员,我们不想用serialization机制来保存它。

为了在一个特定对象的一个域上关闭serialization,可以在这个域前加上关键字transient

 

2 不跟数据库表做映射 就是表中没有这个字段

@Transient表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性.

在项目查了下,mongodb中确实没有此字段,因此也适用于mongodb

 

posted @ 2019-04-26 18:01  andy_mz  阅读(50)  评论(0)    收藏  举报