SpringDataJpa中常用的注解标签

导读:本篇文章讲解 SpringDataJpa中常用的注解标签,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

SpringDataJpa中常用的注解标签


前言

今天为大家分享:SpringDataJpa中常用的注解标签。

前面讲了SpringDataJpa的快速入门,请查看博主的SpringDataJpa系列文章。欢迎关注!


创建实体

在com.cyj.springboot.entity下创建Student类,如下:

package com.cyj.springboot.entity; 
import java.util.Date; 
import javax.persistence.Column; 
import javax.persistence.Entity; 
import javax.persistence.GeneratedValue; 
import javax.persistence.Id; 
import javax.persistence.Table; 
import org.springframework.format.annotation.DateTimeFormat; 
/*** 由于数据库没有数据表@Entity创建实体 
* @table(name="studenttb")在springbootjpahelloworlddb里面自动创建表名为studenttb的数据表 */ 
@Entity 
@Table(name="studenttb") 
public class Student { 
    @Id 
    //实体类的主键 
    @GeneratedValue 
    //自动增长列 
    private Integer studentId;
    //学生编号 
    private String studentName;
    //学生姓名 
    private Integer studentAge;
    //学生年龄 
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") 
    private Date studentBirthday;
    //学生出生年月 
    public Integer getStudentId() { 
        return studentId; 
    }
    public void setStudentId(Integer studentId) {
        this.studentId = studentId; 
    }
    public String getStudentName() { 
        return studentName; 
    }
    public void setStudentName(String studentName) {
        this.studentName = studentName; 
    }
    public Integer getStudentAge() { 
        return studentAge; 
    }
    public void setStudentAge(Integer studentAge) {
        this.studentAge = studentAge; 
    }
    public Date getStudentBirthday() { 
        return studentBirthday;
    }
    public void setStudentBirthday(Date studentBirthday) { 
        this.studentBirthday = studentBirthday; 
    }
    @Override 
    public String toString() { 
        return "Student [studentId=" + studentId + ", studentName=" + studentName + ", studentAge=" + studentAge + ", studentBirthday=" + studentBirthday + "]"; 
    } 
}

下面总结一下JPA中常用的注解标签

  • @Entity:@Entity标记在类名上面,作为实体类的标识。
  • @Table:当实体类与其映射的数据库表名不同名时需要使用 @Table 标注说明,该标注与 @Entity 标注并列
    使用,置于实体类声明语句之前,可写于单独语句行,也可与声明语句同行。 @Table 标注的常用选项是
    name,用于指明数据库的表名。 @Table标注还有一个两个选项 catalog 和 schema 用于设置表所属的数据
    库目录或模式,通常为数据库名。uniqueConstraints选项用于设置约束条件,通常不须设置。
  • @Id:@Id设置对象表示符,标识的实体类的属性映射对应表中的主键。
  • @GeneratedValue:设置标识符的生成策略,常与@Id一起使用。参数:strategy指定具体的生成策略
    • 方式一:@GeneratedValue(strategy=GenerationType.AUTO) 也是默认策略, 即写成@GeneratedValue也可;类似于hibernate的native策略,生成方式取决于底层的数据库。
    • 方式二:@GeneratedValue(strategy = GenerationType.IDENTITY)指定“自动增长”策略,适用于MySQL;
    • 方式三:@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = “seq_tbl_person”)指 定“序列”策略,常用于Oracle,其中generator表示生成器的名字。而且还要指定@SequenceGenerator(name = “seq_tbl_person”, sequenceName = “seq_tbl_person”, allocationSize
      = 1)注解配合使用。其中name指定生成器的名字(与generator的值一样),sequenceName指定数据
      库中定义序列的名字,allocationSize指定序列每次增长1。
  • @Column:描述数据库表中该字段的定义,具有一下属性。
    • name:表示数据库表中该字段的名称,默认情形属性名称一致。
    • nullable:表示该字段是否允许为null,默认为true。
    • unique:表示该字段是否是唯一标识,默认为false。
    • length:表示该字段的大小,仅对String类型的字段有效。
    • insertable:表示在ORM框架执行插入操作时,该字段是否应出现- INSETRT语句中,默认为true。
    • updateable:表示在ORM框架执行更新操作时,该字段是否应该出现在UPDATE语句中,默认为true。
      对于一经创建就不可以更改的字段,该属性非常有用,如对于birthday字段。
    • columnDefinition:表示该字段在数据库中的实际类型。通常ORM框架可以根据属性类型自动判断数据
      库中字段的类型,但是对于Date类型仍无法确定数据库中字段类型究竟是DATE,TIME还是
      TIMESTAMP。此外,String的默认映射类型为VARCHAR,如果要将String类型映射到特定数据库的
      BLOB或TEXT字段类型,该属性非常有用。
  • @OrderBy:在加载数据的时候可以为其指定顺序。
  • @Transient:表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性。
    如果一个属性并非数据库表的字段映射。就务必将其标示为@Transient。否则。ORM框架默认其注解为@Basic

好了到这里也该结束了,下一篇讲解–SpringJpa持久层操作,各位要自己多动手才能学到真正的东西。加油各位


最后

  • 更多参考精彩博文请看这里:《陈永佳的博客》

  • 喜欢博主的小伙伴可以加个关注、点个赞哦,持续更新嘿嘿!


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/97642.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!