spring boot data jpa 创建表中长文本字段
spring boot data jpa 创建表中长文本字段
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 类型。 @Basic @Basic表示属性到数据库表的字段的映射。一个@Entity标注的实体类中的属性,如果没有任何标注,默认即为@Basic,比如User类中的name和email属性。 @Basic有两个常用属性: fetch: 表示实体类对应属性的读取策略,有EAGER和LAZY两种取值,分别表示主动抓取和延迟加载,默认值为EAGER。 optional:表示该属性是否允许为null,默认值为true。 因为这两种类型(Clob or Blob)的数据一般占用的内存空间比较大,所以通常使用延迟加载的方式,与@Basic标注同时使用,设置加载方式为FetchType.LAZY。 @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; } }
下一篇:
python 实现将字典写入csv文件