微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Spring Boot Hibernate类型使用JSON字段创建异常表

如何解决Spring Boot Hibernate类型使用JSON字段创建异常表

我需要带有JSON列的MysqL表,因此我使用了s vladmihalcea / hibernate-types依赖关系,我按照官方文档进行了示例操作,但是我遇到了异常,以及如何克服这个异常。

执行DDL错误”创建表格书(id bigint不为null,isbn varchar(255),属性jsonb,主键(id))engine = InnoDB“通过 JDBC语句

您的sql语法有误;检查手册 对应于您使用正确语法的MysqL服务器版本 第1行的“ jsonb,主键(id))engine = InnoDB”附近

实体类(我承诺使用getter和setter以便在此处清楚地显示代码,并且应该添加getter和setter)

@Entity(name = "Book")
@Table(name = "book")
@TypeDef(
        name = "jsonb",typeClass = JsonBinaryType.class
)
public class Book {

    @Id
    @GeneratedValue
    private Long id;

    @NaturalId
    private String isbn;

    @Type(type = "jsonb")
    @Column(columnDeFinition = "jsonb")
    private String properties;
    
}

存储库接口

@Repository
public interface BookRepository extends JpaRepository<Book,Long> {
}

解决方法

我可以通过更改来解决异常

@TypeDefs({
    @TypeDef(name = "json",typeClass = JsonStringType.class),@TypeDef(name = "jsonb",typeClass = JsonBinaryType.class)
})

代替

@TypeDef(
        name = "jsonb",typeClass = JsonBinaryType.class
)

 @Type(type = "json")
    @Column(columnDefinition = "json")
    private String properties;

代替

 @Type(type = "jsonb")
    @Column(columnDefinition = "jsonb")
    private String properties;

我做错了,我遵循PostgreSQL代码示例而不是mysql

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。