• MySQL支持大量的列类型,它可以被分为3类:数字类型、日期和时间类型以及字符串(字符)类型。Mysql针对字符类型大对象存储的解决方案是Lob对象。

  • @Lob 注解属性将被持久化为 Blog 或 Clob 类型

  • Clob(Character Large Ojects)类型是长字符串类型,具体的java.sql.Clob, Character[], char[] 和 java.lang.String 将被持久化为 Clob 类型。
  • Blob(Binary Large Objects)类型是字节类型,具体的java.sql.Blob, Byte[], byte[] 和 serializable type 将被持久化为 Blob 类型。
  • @Lob 持久化为Blob或者Clob类型,根据get方法的返回值不同,自动进行Clob和Blob的转换。
  • 因为这两种类型的数据一般占用的内存空间比较大,所以通常使用延迟加载的方式,与@Basic标记同时使用,设置加载方式为FetchType.LAZY。

在MySQL中Blob和Clob对应的的字段类型有

  • tinytext (tintblob)
  • text (blob)
  • mediumtext (mediumblob)
  • longtext (longblob)

参考: MySQL中tinytext、text、mediumtext和longtext详解

一般在java中Clob类型用String声明,Blob用byte[]声明MySQL数据库对应字段,例如:

@Lob
@Basic(fetch = FetchType.LAZY)
@Column(name = "f_task_content", nullable = false, columnDefinition = "Text")
private String taskContent;

Note that if you generate your table from the JPA annotations, you can "control" the type MySQL will use by specifying the length attribute of the Column, for example:

@Lob @Basic(fetch = FetchType.LAZY)
@Column(length=100000)
private byte[] picture;

It all depends on the column type used for the picture column. Depending on your needs, use a:

  • TINYBLOB: maximum length of 255 bytes
  • BLOB: maximum length of 65,535 bytes
  • MEDIUMBLOB: maximum length of 16,777,215 bytes
  • LONGBLOB: maximum length of 4,294,967,295 bytes

Depending on the length, you'll get:

   0 < length <=      255  -->  `TINYBLOB`255 < length <=    65535  -->  `BLOB`65535 < length <= 16777215  -->  `MEDIUMBLOB`
16777215 < length <=    2³¹-1  -->  `LONGBLOB`

reference:

[1]. https://blog.csdn.net/cnhome/article/details/42970253

[2]. https://www.jianshu.com/p/fadc24afe33c

MySQL中Lob与JPA映射相关推荐

  1. MySQL工作笔记-使用JPA映射mysql数据库要注意的地方

    这个笔记很简单,主要记录了昨天(2019年12月8日)本人用Spring Boot框架. 此处的刚刚版本如下: java:1.8 Spring Boot:2.1.10.RELEASE mysql-co ...

  2. 编码utf-8的不可映射字符_建议永远不要在MySQL中使用UTF8

    点击上方蓝色字体,选择"置顶公众号" 优质文章,第一时间送达 译文:http://suo.im/4zBuvs 来自:http://ju.outofmemory.cn 最近我遇到了一 ...

  3. 编码utf-8的不可映射字符_不要在 MySQL 中使用“utf8”,请使用“utf8mb4”

    (给数据分析与开发加星标,提升数据技能) 英文:adamhooper,翻译:brightwang www.jianshu.com/p/ab9aa8d4df7d 最近我遇到了一个bug,我试着通过Rai ...

  4. 使用JPA映射实体类和数据库中表时,实体类中定义的enum类型,数据库定义的是varchar类型,为什么使用JPA插入时字段变成了Integer类型

    解决方案,在使用枚举类型定义的字段上添加 注解@Enumerated(EnumType.STRING)即可解决问题 如果不使用该注解,则JPA映射的一直是Integer类型.

  5. mysql中resultmap_MyBatis学习 之 二、SQL语句映射文件(1)resultMap

    二.SQL语句映射文件(1)resultMap SQL 映射XML 文件是所有sql语句放置的地方.需要定义一个workspace,一般定义为对应的接口类的路径.写好SQL语句映射文件后,需要在MyB ...

  6. mysql中建立一对多映射_Mybatis中的高级映射一对一、一对多、多对多

    学习hibernate的时候,小编已经接触多各种映射,mybatis中映射有到底是如何运转的,今天这篇博文,小编主要来简单的介绍一下mybatis中的高级映射,包括一对一.一对多.多对多,希望多有需要 ...

  7. SPRINGBOOT中如何运用JPA,简单例子

    SPRINGBOOT中如何运用JPA,简单例子 步骤 1 : JPA概念顶折 JPA(Java Persistence API)是Sun官方提出的Java持久化规范,用来方便大家操作数据库. 真正干活 ...

  8. SpringBoot系列教材 (十三)- 持久层支持 - springboot中如何运用JPA,简单例子

    步骤1:JPA概念 步骤2:创建数据库 步骤3:创建表 步骤4:准备数据 步骤5:先运行,看到效果,再学习 步骤6:模仿和排错 步骤7:基于前面的知识点 步骤8:application.propert ...

  9. 求求你,别在 MySQL 中使用 UTF-8了!

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 来源:blog.csdn.net/qq_39390545/ ...

最新文章

  1. 阿里的 RocketMQ 如何让双十一峰值之下 0 故障?
  2. java getstringbounds_java-AttributedString的FontMetrics.getStringBounds给出...
  3. 谈谈对python的理解_浅谈对python pandas中 inplace 参数的理解
  4. 5年之后,产品经理,没了?
  5. Python functool module
  6. xml中else if写法_面试官:优化代码中大量的if/else,你有什么方案?
  7. 多平台移动项目开发工具Elements发布v9.1,支持Visual Studio 2017
  8. 【51nod】最大子段和
  9. ARDUINO使用GPRS发送GPS数据到OneNet测试
  10. CDN对互联网产业的价值和作用
  11. 详细介绍各种常见的分布
  12. python参考手册下载_python学习手册下载|
  13. R语言批量生成CaseWhen的解决方案
  14. html实现画板的基本操作,JavaScript操作Canvas实现画板实例分析
  15. 软件工程考研复试、工作面试常见问题及答案
  16. [落选]狗熊会人才计划第6期选拔作业
  17. 基本面因子投资的三点思考
  18. NLP 基础应用研究方向简介
  19. xp 无法关闭计算机,xp系统关机时一直显示正在关机状态却无法关键的解决方法...
  20. Qt处理传输协议数据时QByteArray添加多字节的使用案例

热门文章

  1. python2.7入门---XML解析
  2. macbook pro能搜索到wifi,但是连接不上
  3. 川崎机器人总线通信_【川崎】川崎机器人PROFINET 总线通信图文教程(下)
  4. 东北大学 计算机学院 转专业,东北大学可以转专业吗 东北大学新生转专业政策...
  5. 【NOIP2017提高组】轰炸
  6. 一般论文投稿应该注意哪些要求
  7. Java枚举详使用解
  8. 完善跨境金融区块链服务平台,支持区域开放创新和特殊区域建设
  9. 产品思考 - 天天领现金 (论毅力的重要性)
  10. 安装tensorflow 2.5