org.hibernate.tool.schema.spi.CommandAcceptanceException:执行DDL时出错;创建表
我使用的是SpringBoot,H2数据库 我的要求是将json字符串存储到数据库中 下面是我的实体类org.hibernate.tool.schema.spi.CommandAcceptanceException:执行DDL时出错;创建表,hibernate,spring-boot,spring-data-jpa,spring-data,Hibernate,Spring Boot,Spring Data Jpa,Spring Data,我使用的是SpringBoot,H2数据库 我的要求是将json字符串存储到数据库中 下面是我的实体类 import org.json.JSONObject; @Entity @Table(name = "TABLE_JSON") public class DataJson { @Id @Type(type = "uuid-char") @GeneratedValue(generator = "UUID") @GenericGenerator(name = "
import org.json.JSONObject;
@Entity
@Table(name = "TABLE_JSON")
public class DataJson {
@Id
@Type(type = "uuid-char")
@GeneratedValue(generator = "UUID")
@GenericGenerator(name = "UUID", strategy = "org.hibernate.id.UUIDGenerator")
@Column(name = "id", updatable = false, nullable = false)
private UUID id;
@NonNull
private String check;
@NonNull
@Column(columnDefinition = "TEXT")
@Convert(converter= JSONObjectConverterForMe.class)
private JSONObject json_data;
}
下面是转换器类
import org.json.JSONObject;
@Converter
public class JSONObjectConverterForMe implements AttributeConverter<JSONObject, String> {
@Override
public String convertToDatabaseColumn(JSONObject jsonData) {
String json;
try{
json = jsonData.toString();
}
catch (NullPointerException ex)
{
//extend error handling here if you want
json = "";
}
return json;
}
@Override
public JSONObject convertToEntityAttribute(String jsonDataAsJson) {
JSONObject jsonData;
try {
jsonData = new JSONObject(jsonDataAsJson);
} catch (JSONException ex) {
//extend error handling here if you want
jsonData = null;
}
return jsonData;
}
}
以下是完整的错误详细信息
org.hibernate.tool.schema.spi.CommandAcceptanceException:通过JDBC语句执行DDL“创建表_JSON(id varchar(255)不为空,检查varchar(255),JSON_数据文本,主键(id))”时出错
在org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:67)~[hibernate-core-5.4.10.Final.jar:5.4.10.Final]
位于org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlString(SchemaCreatorImpl.java:439)[hibernate-core-5.4.10.Final.jar:5.4.10.Final]
位于org.hibernate.tool.schema.internal.SchemaCreatorImpl.applySqlStrings(SchemaCreatorImpl.java:423)[hibernate-core-5.4.10.Final.jar:5.4.10.Final]
在org.hibernate.tool.schema.internal.SchemaCreatorImpl.createFromMetadata(SchemaCreatorImpl.java:314)[hibernate-core-5.4.10.Final.jar:5.4.10.Final]
在org.hibernate.tool.schema.internal.SchemaCreatorImpl.performCreation(SchemaCreatorImpl.java:166)[hibernate-core-5.4.10.Final.jar:5.4.10.Final]
在org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation(SchemaCreatorImpl.java:135)[hibernate-core-5.4.10.Final.jar:5.4.10.Final]
在org.hibernate.tool.schema.internal.SchemaCreatorImpl.doCreation(SchemaCreatorImpl.java:121)[hibernate-core-5.4.10.Final.jar:5.4.10.Final]
在org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:156)[hibernate-core-5.4.10.Final.jar:5.4.10.Final]
位于org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:73)[hibernate-core-5.4.10.Final.jar:5.4.10.Final]
在org.hibernate.internal.sessionfactorympl.(sessionfactorympl.java:320)[hibernate-core-5.4.10.Final.jar:5.4.10.Final]
在org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:462)[hibernate-core-5.4.10.Final.jar:5.4.10.Final]
在org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1237)[hibernate-core-5.4.10.Final.jar:5.4.10.Final]
位于org.springframework.orm.jpa.vendor.springhibernatejbapersistenceprovider.createContainerEntityManager工厂(springhibernatejbapersistenceprovider.java:58)[spring-orm-5.2.3.RELEASE.jar:5.2.3.RELEASE]
在org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365)[spring-orm-5.2.3.RELEASE.jar:5.2.3.RELEASE]
位于org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:391)[spring-orm-5.2.3.RELEASE.jar:5.2.3.RELEASE]
在org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.AfterPropertieSet(AbstractEntityManagerFactoryBean.java:378)[spring-orm-5.2.3.RELEASE.jar:5.2.3.RELEASE]
在org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:341)[spring-orm-5.2.3.RELEASE.jar:5.2.3.RELEASE]
位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1855)[spring-beans-5.2.3.RELEASE.jar:5.2.3.RELEASE]
位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1792)[spring-beans-5.2.3.RELEASE.jar:5.2.3.RELEASE]
位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:595)[spring-beans-5.2.3.RELEASE.jar:5.2.3.RELEASE]
位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517)[spring-beans-5.2.3.RELEASE.jar:5.2.3.RELEASE]
在org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323)[spring-beans-5.2.3.RELEASE.jar:5.2.3.RELEASE]
在org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)~[spring-beans-5.2.3.RELEASE.jar:5.2.3.RELEASE]
位于org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321)[spring-beans-5.2.3.RELEASE.jar:5.2.3.RELEASE]
位于org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)[spring-beans-5.2.3.RELEASE.jar:5.2.3.RELEASE]
在org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1108)~[spring-context-5.2.3.RELEASE.jar:5.2.3.RELEASE]
在org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:868)~[spring-context-5.2.3.RELEASE.jar:5.2.3.RELEASE]
在org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550)~[spring-context-5.2.3.RELEASE.jar:5.2.3.RELEASE]
在org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:141)~[spring-boot-2.2.4.RELEASE.jar:2.2.4.RELEASE]
在org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747)~[spring-boot-2.2.4.RELEASE.jar:2.2.4.RELEASE]
在org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397)~[spring-boot-2.2.4.RELEASE.jar:2.2.4.RELEASE]
在org.springframework.boot.SpringApplication.run(SpringApplication.java:315)~[spring-boot-2.2.4.RELEASE.jar:2.2.4.RELEASE]
在org.springframework.boot.SpringApplication.run(SpringApplication.java:1226)~[spring-boot-2.2.4.RELEASE.jar:2.2.4.R
org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL "create table TABLE_JSON (id varchar(255) not null, check varchar(255), json_data TEXT, primary key (id))" via JDBC Statement
@NonNull
@Column(name="another_column_name")
private String check;
@Column(name="`check`")
private String check;
@Column(name="\"check\"")
private String check;
hibernate.globally_quoted_identifiers=true
@Column(name = "id", length = 36 , updatable = false, nullable = false)
private UUID id;