Infobright数据库社区版本未实现SQL Insert语句。它使用其他语句来代替数据加载。请参阅以下链接:
https://support.infobright.com/forums/showthread.php?7939-insert-in-table
因此,hibernate无法将数据保存到infobright数据库,因为hibernate使用插入statament。
Hibernate: insert into Desenvolvedor (Cidade, Estado, Nome) values (?, ?, ?)
org.hibernate.exception.GenericJDBCException: could not execute statement
at org.hibernate.exception.internal.StandardSQLExcept ionConverter.convert(StandardSQLExceptionConverter .java:54)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.c onvert(SqlExceptionHelper.java:126)
...
Caused by: java.sql.SQLException: Table storage engine for 'desenvolvedor' doesn't have this option
at com.mysql.jdbc.SQLError.createSQLException(SQLErro r.java:1086)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.ja va:4237)
...
下面是hibernate.cfg.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- Database connection properties - Driver, URL, user, password -->
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.password">test</property>
<property name="hibernate.connection.url">jdbc:mysql://10.61.15.117:5029/test</property>
<property name="hibernate.connection.username">TestUser</property>
<!-- Outputs the SQL queries, should be disabled in Production -->
<property name="hibernate.show_sql">true</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.pool_size">1</property>
<mapping class="base.Desenvolvedor"/>
</session-factory>
</hibernate-configuration>
有人已经遇到过这个问题吗?是否真的有必要使用Hibernate createSQLQuery()方法或直接使用JDBC为Community Infobright数据库实现此数据插入?
谢谢,
Canicali
答案 0 :(得分:0)
采用的解决方案是将表引擎从BRIGHTOUSE更改为MYISAM。最后一个接受hibernate生成的插入命令。在SQL Create Table语句中,可以在不更改数据库引擎默认值的情况下设置表的引擎。
create table test.Desenvolvedor (
nome varchar(11),
cidade varchar (255),
estado varchar (255)
) engine = MYISAM