如何解决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 举报,一经查实,本站将立刻删除。