Spring Boot中如何指定MySQL列类型为LONGBLOB存储图片?
如何在Spring Boot中指定MySQL的LONGBLOB类型存储图片
要让Hibernate生成LONGBLOB类型的列,只需在@Column注解中通过columnDefinition属性显式指定数据库列类型即可,修改后的实体类代码如下:
@Data @Entity @Table(name = "image") public class ImageEntity { @GeneratedValue(strategy = GenerationType.IDENTITY) @Id @Column(name = "id_image") private Integer idImage; @Lob @Column(name = "image", nullable = false, columnDefinition = "LONGBLOB") private byte[] image; }
关键说明:
columnDefinition = "LONGBLOB"直接告诉Hibernate在生成表结构时,该列使用MySQL的LONGBLOB类型,覆盖了@Lob默认生成的TINYBLOB/BLOB类型。- 无需保留
@Basic注解,@Lob已经隐含了基本属性的语义,且字节数组类型默认就是基本映射。
额外注意:
确保项目中配置的Hibernate方言适配MySQL版本,比如在application.properties中配置:
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect
(MySQL 5.x版本可使用org.hibernate.dialect.MySQL5Dialect)
内容的提问来源于stack exchange,提问作者user19590290
相关产品推荐
相关产品推荐

