欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

基本属性映射

程序员文章站 2022-04-25 19:23:08
这块主要是根据网上的一些课程 自己记录的一些随便 这块课程主要是 使用springboot 然后数据库操作使用spring-data-jpa 框架是前后端分离 这个课程主要讲后端,还是用springsecurty等 jpa是一种orm的规范,根据网上的定义 JPA全称Java Persistence ......

 

这块主要是根据网上的一些课程 自己记录的一些随便

  这块课程主要是 使用springboot 然后数据库操作使用spring-data-jpa 框架是前后端分离 这个课程主要讲后端,还是用springsecurty等

jpa是一种orm的规范,根据网上的定义

  JPA全称Java Persistence API,是一组用于将数据存入数据库的类和方法的集合。JPA通过JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。

首先建立一个类

  如图

      基本属性映射

 

  类中的@Entity注解意思是:说明这个class是一个实体类,并使用默认的orm规则,即class的名称对应的表明,class名就是字段名。

  类中@Id表明:说明一个实体类的属性映射为数据库的主键列。

  @Id也可以至于get方法之上。

  @Lombok是一个插件是lombok,省略了setget方法。

  @GneratedValue:

    @GeneratedValue用于标注注解的生成策略,通过strategy属性来指定注解是哪种生成策略(这里用了@AUTO 其实正常来说正式环境 是没有这样 auto一般会使用雪花算法 来生成注解策略)

      在java.persistence.GenerationType中定义了以下几种策略

        -IDENTITY:采用id自增长方式来自增主键字段,Oracle 不支持这种方式

        -AUTO:jpa自动选择合适的策略

        –SEQUENCE:通过序列产生主键,通过@SequenceGenerator 注解指定序列名,MySql不支持这种方式 

        –TABLE:通过表产生主键,框架借由表模拟序列产生主键,使用该策略可以使应用更易于数据库移植。

运行springboot这个项目,同时观察数据库,在这之前记得要在application.properties进行如下操作:

    基本属性映射

这个时候运行 application主函数,这个时候观察数据库 ,看到已经生成表

    基本属性映射

这个时候 可以看到数据库表名和字段名都是跟Category这个类一样,但是这个时候 我想在表或者字段上加上前缀,这个时候可以使用@table,如图:

基本属性映射

 

 因为在application配置的策略是update  所有 这个时候 会新生成一张表 ,如果我想在在字段上 加前缀 可以使用@Column注解

 

 

@Entity
@Data
@Table(name = "rc_category")
public class Category {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;


    @Column(name = "rc_name")
    private String name;
}

再次运行application,就会生成跟@Column对面的字段

基本属性映射

但是有一些的时候一些字段不需要存到数据库中,我们可以使用@Transient这个注解

@Entity
@Data
@Table(name = "rc_category")
public class Category {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;


    @Column(name = "rc_name")
    private String name;

    @Transient
    private String xxxx;
}

运行application之后,如下图

基本属性映射

 

 说明@Transient已经起作用