📜  Spring Data JPA – @Column 注解的属性及示例

📅  最后修改于: 2022-05-13 01:55:15.266000             🧑  作者: Mango

Spring Data JPA – @Column 注解的属性及示例

Spring Boot 建立在 Spring 之上,包含了 Spring 的所有特性。 Spring 还提供了 JPA 和 hibernate 来提高 Spring 应用程序和数据库之间的数据操作效率。简单来说,我们可以说 JPA(Java持久性 API)就像一个接口,而休眠是接口方法的实现,就像在休眠的帮助下已经定义了插入的方式一样。在本文中,我们将通过示例讨论@Column 注解的以下最重要和最常用的属性。

  1. @Column(length=”varchar(255)/Integer 23″):添加MySQL表中特定列的列大小
  2. @Column(columnDefinition = “varchar(22) default 'Aayush'”):在列中添加默认值
  3. @Column(nullable=false):给表的列添加非空约束

让我们一一讨论每个操作。

例子

第 1 步:转到此链接。根据要求填写详细信息。对于此应用程序:

Project: Maven
Language: Java
Spring Boot: 2.5.6
Packaging: JAR
Java: 11
Dependencies: Spring Web,Spring Data JPA, MySql Driver

单击生成将下载启动项目。

第 2 步:解压缩 zip 文件。现在打开一个合适的 IDE,然后转到 File > New > Project from existing sources > Mapping 并选择 pom.xml。点击提示导入更改,等待项目同步,如下图所示:

第 3 步:在 application.properties 文件中添加必要的属性。 (映射是数据库名称)

spring.datasource.username=root
spring.datasource.password=Aayush
spring.datasource.url=jdbc:mysql://localhost:3306/mapping
spring.jpa.hibernate.ddl-auto=update

第四步:在项目文件夹中创建模型文件夹,制作StudentInformation类。

项目结构:

1.增加列的大小

学生信息。Java

Java
@Entity
@Table(name = "Student")
public class StudentInformation {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int rollno;
  
      @Column(name = "Student_name" ,length = 30)
      private String name;
  
    public int getRollno() { return rollno; }
  
    public StudentInformation() {}
  
    public StudentInformation(int rollno, String name)
    {
        this.rollno = rollno;
        this.name = name;
    }
  
    public void setRollno(int rollno)
    {
  
        this.rollno = rollno;
    }
  
    public String getName() { return name; }
  
    public void setName(String name) { this.name = name; }
}


Java
@Entity
@Table(name = "Student")
public class StudentInformation {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int rollno;
  
      @Column(columnDefinition = "varchar(22) default 'Aayush'")
      private String name;
  
    public int getRollno() { return rollno; }
  
    public StudentInformation() {}
  
    public StudentInformation(int rollno, String name)
    {
        this.rollno = rollno;
        this.name = name;
    }
  
    public void setRollno(int rollno)
    {
  
        this.rollno = rollno;
    }
  
    public String getName() { return name; }
  
    public void setName(String name) { this.name = name; }
}


Java
@Entity
@Table(name = "Student")
public class StudentInformation {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int rollno;
  
      @Column(nullable=false)
      private String name;
  
    public int getRollno() { return rollno; }
  
    public StudentInformation() {}
  
    public StudentInformation(int rollno, String name)
    {
        this.rollno = rollno;
        this.name = name;
    }
  
    public void setRollno(int rollno)
    {
  
        this.rollno = rollno;
    }
  
    public String getName() { return name; }
  
    public void setName(String name) { this.name = name; }
}


运行主应用程序:

数据库输出:

2.在列中添加默认值

学生信息。Java

Java

@Entity
@Table(name = "Student")
public class StudentInformation {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int rollno;
  
      @Column(columnDefinition = "varchar(22) default 'Aayush'")
      private String name;
  
    public int getRollno() { return rollno; }
  
    public StudentInformation() {}
  
    public StudentInformation(int rollno, String name)
    {
        this.rollno = rollno;
        this.name = name;
    }
  
    public void setRollno(int rollno)
    {
  
        this.rollno = rollno;
    }
  
    public String getName() { return name; }
  
    public void setName(String name) { this.name = name; }
}

运行主应用程序:

数据库输出:

3. 给列添加非空约束

学生信息。Java

Java

@Entity
@Table(name = "Student")
public class StudentInformation {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int rollno;
  
      @Column(nullable=false)
      private String name;
  
    public int getRollno() { return rollno; }
  
    public StudentInformation() {}
  
    public StudentInformation(int rollno, String name)
    {
        this.rollno = rollno;
        this.name = name;
    }
  
    public void setRollno(int rollno)
    {
  
        this.rollno = rollno;
    }
  
    public String getName() { return name; }
  
    public void setName(String name) { this.name = name; }
}

运行主应用程序:

终端输出:

数据库输出: