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: Error executing DDL "create table TABLE_JSON (id varchar(255) not null, check varchar(255), json_data TEXT, primary key (id))" via JDBC Statement
以下是完整的错误详细信息
check
是SQL保留关键字,因此不能将check
用作没有引号/反勾的列名。默认情况下,hibernate不使用quote/backtick作为查询中的列名。您可以这样显式地使用backtick/quote
@Column(name="`check`")
private String check;
在某些数据库中,backtick不起作用例如:postgresql使用引用
@Column(name="\"check\"")
private String check;
也可以强制hibernate在配置文件中使用引号来表示列和表名
hibernate.globally_quoted_identifiers=true
@Column(name = "id", length = 36 , updatable = false, nullable = false)
private UUID id;
所以我正在尝试将spring boot连接到MySql,所以我已经安装了sql并开始运行,我可以将我的IDE和工作台连接到它MySql Local insrance 3306 然后我用这个pom将spring boot应用程序装入箱中
我有一个spring boot应用程序,它在H2上运行sql以在启动期间创建数据库表。该项目位于github。 我有实体叫ovie.java 我运行的sql在github下面和上面- 我插入的csv文件在这里 当我运行Spring应用程序时,我得到以下错误- 在org.h2.engine.Pocal.prepare创建(Pocal.java:615)~[h2-2.1.210.jar: 2.1.21
我真的需要帮助,我在stackoverflow上找到的所有问题中都搜索到了,但没有任何效果。我以前从未使用过hibernate,我不知道自己做错了什么 这是我的存储库:https://github.com/ionutincau/test_db 我收到了这个错误:
我在使用以下方言创建表时遇到以下错误 “org.hibernate.dialoget.mysqlinoddDialogic”
我想在springboot中通过H2创建表,但运行时出现以下错误:; 组织。冬眠地方话方言:hh000400:使用方言:org。冬眠地方话H2方言组织。冬眠工具模式。spi。CommandAcceptanceException:通过JDBC语句执行DDL“创建表bank_account(id bigint not null,balance double not null,full name var