spring boot data jpa 创建表中长文本字段

spring boot data jpa 创建表中长文本字段

1.如何创建

  • 需要用到的注解

    1. @Lob

      @Lob标注表示将属性映射成数据库支持的大对象类型,Clob或者Blog。其中:

      • Clob(Character Large Ojects)类型是长字符串类型,java.sql.Clob、 Character[]、char[] 和 String 将被映射为 Clob 类型。
      • Blob(Binary Large Objects)类型是字节类型,java.sql.Blob、Byte[]、byte[] 和 实现了Serializable接口的类型将被映射为 Blob 类型。
    2. @Basic

      @Basic表示属性到数据库表的字段的映射。一个@Entity标注的实体类中的属性,如果没有任何标注,默认即为@Basic,比如User类中的name和email属性。
      @Basic有两个常用属性:

      • fetch: 表示实体类对应属性的读取策略,有EAGER和LAZY两种取值,分别表示主动抓取和延迟加载,默认值为EAGER。
      • optional:表示该属性是否允许为null,默认值为true。
        因为这两种类型(Clob or Blob)的数据一般占用的内存空间比较大,所以通常使用延迟加载的方式,与@Basic标注同时使用,设置加载方式为FetchType.LAZY。
    3. @Column(columnDefinition = "text")

      当实体类的属性与其映射的数据库表的列名称不同时,可以使用@Colunm标注。该标注描述了数据库表中该字段的详细定义

      columnDefinition:表示该字段在数据库中的实际类型。通常ORM框架可以根据属性类型自动判断数据库中字段的类型,但是依然有些例外:

      • Date类型无法确定数据库中字段类型究竟是DATE、TIME还是TIMESTAMP
      • String的默认映射类型为VARCHAR,如果希望将String类型映射到特定数据库的BLOB或TEXT字段类型,则需要进行设置
  • 实例代码

@Entity
public class Commodity {//商品
  @Id @Column(length = 20) private String cid; 
  @Column(length = 40) private String cname;
  private Integer price;//价格
  private Integer stock_quantity;//库存数量
  private Integer Sales_volume;//销售数量
  @Lob @Basic(fetch = FetchType.LAZY) @Column(columnDefinition = "text") private String description;//商品商品描述
  @ManyToOne(cascade = CascadeType.ALL) private  Category category;
  public Commodity(){

  }

  public String getCid() {
      return cid;
  }

  public void setCid(String cid) {
      this.cid = cid;
  }

  public String getCname() {
      return cname;
  }

  public void setCname(String cname) {
      this.cname = cname;
  }

  public Integer getPrice() {
      return price;
  }

  public void setPrice(Integer price) {
      this.price = price;
  }


  public String getDescription() {
      return description;
  }

  public void setDescription(String description) {
      this.description = description;
  }

  public Integer getStock_quantity() {
      return stock_quantity;
  }

  public void setStock_quantity(Integer stock_quantity) {
      this.stock_quantity = stock_quantity;
  }

  public Integer getSales_volume() {
      return Sales_volume;
  }

  public void setSales_volume(Integer sales_volume) {
      Sales_volume = sales_volume;
  }

  public Category getCategory() {
      return category;
  }

  public void setCategory(Category category) {
      this.category = category;
  }
}


小礼物走一走,来简书关注我

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Spring Boot Data JPASpring Boot框架中的一个模块,它提供了一种简单的方式来使用Java Persistence API(JPA)来访问数据库。使用Spring Boot Data JPA,开发人员可以轻松地创建和管理实体类、数据访问对象(DAO)和数据库表之间的映射关系。此外,Spring Boot Data JPA还提供了一些方便的功能,如自动配置、事务管理和查询DSL等,使得开发人员可以更加高效地开发和维护应用程序。 ### 回答2: Spring Boot Data JPASpring Boot 框架的一部分,它在关系型数据库中使用 JPA(Java Persistence API)技术,允许我们轻松地管理和控制应用程序的数据访问层。 Spring Boot Data JPA 的主要优势是其极简化的配置和使用,大大降低了使用 JPA 的门槛。它提供了自动化配置,使开发人员可以轻松地集成和配置 Spring Data JPA,从而快速构建可靠和高效的数据访问层。 Spring Boot Data JPA 还提供了一些非常重要的特性,如自定义查询方法、分页查询、缓存支持和事务管理。自定义查询方法可以让我们以面向对象的形式,使用简单的方法签名来定义各种查询,无须编写 SQL 语句。分页查询支持可以在处理大量数据时提高系统性能。缓存支持可以减小数据库压力,提高应用程序的响应速度。事务管理可以保证数据层的一致性和可靠性。 在开发过程中,Spring Boot Data JPA 在访问关系型数据库时封装了一些常见操作,如增、删、改、查等,使操作变得更加简单和方便。此外,它还提供了 Hibernate 作为默认的 JPA 实现,它是一款高性能、稳定、可靠的 ORM(对象关系映射)框架,在 Java 领域中有着广泛的应用。 总之,Spring Boot Data JPA 是一个非常实用、高效的数据访问层框架,它能够大大加快应用程序的开发速度、提高开发效率和开发质量。它适用于各种类型的应用程序开发,如 Web 应用程序、微服务、移动应用程序等。在大量的 Java 应用程序中,它已经被广泛采用,并成为了 Java 世界中不可或缺的一部分。 ### 回答3: Spring Boot Data JPA是一种简化了数据访问层开发的框架,它整合了Spring BootSpring Data JPA两个框架,使得我们可以快速、方便地进行ORM(对象关系映射)的开发。 Spring Boot Data JPA适用于Java开发者,它提供了快速、便捷、强大的数据持久化和查询能力,可以帮助我们高效地开发和维护企业级应用。 Spring Boot Data JPA通过自动化配置和约定大于配置的方式大大简化了开发流程,减少了一些繁琐的配置,提高了开发效率。 在使用Spring Boot Data JPA时,我们只需要定义实体类和接口,然后按照约定的方式定义查询方法即可。Spring Data JPA会根据方法名自动生成对应的SQL语句,并且提供了一些标准的查询方法,如findByXXX、findAllByXXX等,方便我们根据条件查询数据。 此外,Spring Boot Data JPA还提供了支持事务、缓存、分页、排序等功能,方便我们进行数据操作和优化。 总的来说,Spring Boot Data JPA是一种非常方便、高效、易用的框架,适合需要快速开发和维护数据访问层的企业级应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值