MySQL中Lob与JPA映射
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映射相关推荐
- MySQL工作笔记-使用JPA映射mysql数据库要注意的地方
这个笔记很简单,主要记录了昨天(2019年12月8日)本人用Spring Boot框架. 此处的刚刚版本如下: java:1.8 Spring Boot:2.1.10.RELEASE mysql-co ...
- 编码utf-8的不可映射字符_建议永远不要在MySQL中使用UTF8
点击上方蓝色字体,选择"置顶公众号" 优质文章,第一时间送达 译文:http://suo.im/4zBuvs 来自:http://ju.outofmemory.cn 最近我遇到了一 ...
- 编码utf-8的不可映射字符_不要在 MySQL 中使用“utf8”,请使用“utf8mb4”
(给数据分析与开发加星标,提升数据技能) 英文:adamhooper,翻译:brightwang www.jianshu.com/p/ab9aa8d4df7d 最近我遇到了一个bug,我试着通过Rai ...
- 使用JPA映射实体类和数据库中表时,实体类中定义的enum类型,数据库定义的是varchar类型,为什么使用JPA插入时字段变成了Integer类型
解决方案,在使用枚举类型定义的字段上添加 注解@Enumerated(EnumType.STRING)即可解决问题 如果不使用该注解,则JPA映射的一直是Integer类型.
- mysql中resultmap_MyBatis学习 之 二、SQL语句映射文件(1)resultMap
二.SQL语句映射文件(1)resultMap SQL 映射XML 文件是所有sql语句放置的地方.需要定义一个workspace,一般定义为对应的接口类的路径.写好SQL语句映射文件后,需要在MyB ...
- mysql中建立一对多映射_Mybatis中的高级映射一对一、一对多、多对多
学习hibernate的时候,小编已经接触多各种映射,mybatis中映射有到底是如何运转的,今天这篇博文,小编主要来简单的介绍一下mybatis中的高级映射,包括一对一.一对多.多对多,希望多有需要 ...
- SPRINGBOOT中如何运用JPA,简单例子
SPRINGBOOT中如何运用JPA,简单例子 步骤 1 : JPA概念顶折 JPA(Java Persistence API)是Sun官方提出的Java持久化规范,用来方便大家操作数据库. 真正干活 ...
- SpringBoot系列教材 (十三)- 持久层支持 - springboot中如何运用JPA,简单例子
步骤1:JPA概念 步骤2:创建数据库 步骤3:创建表 步骤4:准备数据 步骤5:先运行,看到效果,再学习 步骤6:模仿和排错 步骤7:基于前面的知识点 步骤8:application.propert ...
- 求求你,别在 MySQL 中使用 UTF-8了!
点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 来源:blog.csdn.net/qq_39390545/ ...
最新文章
- 阿里的 RocketMQ 如何让双十一峰值之下 0 故障?
- java getstringbounds_java-AttributedString的FontMetrics.getStringBounds给出...
- 谈谈对python的理解_浅谈对python pandas中 inplace 参数的理解
- 5年之后,产品经理,没了?
- Python functool module
- xml中else if写法_面试官:优化代码中大量的if/else,你有什么方案?
- 多平台移动项目开发工具Elements发布v9.1,支持Visual Studio 2017
- 【51nod】最大子段和
- ARDUINO使用GPRS发送GPS数据到OneNet测试
- CDN对互联网产业的价值和作用
- 详细介绍各种常见的分布
- python参考手册下载_python学习手册下载|
- R语言批量生成CaseWhen的解决方案
- html实现画板的基本操作,JavaScript操作Canvas实现画板实例分析
- 软件工程考研复试、工作面试常见问题及答案
- [落选]狗熊会人才计划第6期选拔作业
- 基本面因子投资的三点思考
- NLP 基础应用研究方向简介
- xp 无法关闭计算机,xp系统关机时一直显示正在关机状态却无法关键的解决方法...
- Qt处理传输协议数据时QByteArray添加多字节的使用案例