必威体育Betway必威体育官网
当前位置:首页 > IT技术

关于 @Transient 注解 的使用

时间:2019-09-29 19:15:38来源:IT技术作者:seo实验室小编阅读:86次「手机版」
 

transient

关于 @transient 第一次看到这个注解,于是百度一下.

实体类中使用了@Table注解后,想要添加表中不存在的字段,就要使用@Transient这个注解了。

使用 @Transient 表示该属性并非是一个要映射到数据库表中的字段,只是起辅助作用.ORM框架将会忽略该属性

注解可以加在属性上 也可以加在get()上面

一下只是自己做的简单测试的,还望指正.

使用到的有两个@Transient

javax.persistence.Transient;

org.Springframework.data.annotation.Transient;

我对这两个都进行了简单的测试

第一次使用是 org.springframework.data.annotation.Transient 下面的

import org.springframework.data.annotation.Transient;

import javax.persistence.Entity;
import javax.persistence.generatedValue;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "t_student_test_transient")
public class Student {

    @Id
    @GeneratedValue
    private Long id;
    private String username;
    private String password;
    private integer age;

    @Transient
    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    @Transient
    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

结果,字段都自动映射了.   加在属性上面也是一样的效果 数据库字段没有任何改变 @Transient好像没有起作用,我也是菜鸟不懂是因为什么,希望大佬看到能够指出

  

再使用下javax,persistence下的

import javax.persistence.*;

@Entity
@Table(name = "t_student_test_transient")
public class Student {

    @Id
    @GeneratedValue
    private Long id;
    private String username;
    private String password;
    private Integer age;

    @Transient
    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    @Transient
    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

同样是加在get方法上面,然后看数据库 发现还是没有变化.

这次将注解放在属上上

import javax.persistence.*;

@Entity
@Table(name = "t_student_test_transient")
public class Student {

    @Id
    @GeneratedValue
    private Long id;
    private String username;
    @Transient
    private String password;
    @Transient
    private Integer age;

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

再看数据库,发现 加上@Transient 注解的字段都没有被映射进来. 

所以当想要忽略某个字段的,不让其映射数据库时候 可以使此注解@Transient

相关阅读

FileSplit简单使用

hadoop的FileSplit简单使用FileSplit类继承关系:FileSplit类中的属性和方法:作业输入:[java] view plain copy print?hadoop@hado

CloudStack的基本使用

ISO和模板文件的管理 ISO和模板文件通过HTTP或HTTPS协议上传到二级存储中。CloudStack中的模板分为三种:系统模板,内置模板和用户

linux .gz文件 解压缩命令的简单使用

压缩 压缩文件 语法 gzip 源文件 1 如压缩 b.txt 使用命令 gzip b.txt 即可 注意 压缩为 .gz 文件 源文件会消失 如果想保留源

Caffe使用,进行分类,finetune训练

一般来说我们自己需要做的方向,比如在一些特定的领域的识别分类中,我们很难拿到大量的数据。因为像在ImageNet上毕竟是一个千万级的

动态规划,存在1元,3元,5元硬币若干,使用最少硬币构成n元

题目描述:存在一元,三元,五元硬币若干,如何用最少的硬币凑够11元。看到最少这个字眼,我们可以进行判断能否通过动态规划进行求解,经过分

分享到:

栏目导航

推荐阅读

热门阅读