基本属性映射

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

  这块课程主要是 使用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已经起作用

猜你喜欢

转载自www.cnblogs.com/baidoufu/p/8908181.html