0

Infobright Data Base Community version does not implement the SQL Insert statement. It uses other statements for data loading instead. See link below:

https://support.infobright.com/forums/showthread.php?7939-insert-in-table

Therefore hibernate does not work on saving data to infobright data base since hibernate uses the insert 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)
...

Below is the hibernate.cfg.xml file:

<?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>

Has someone already faced this problem? Is it really necessary to use Hibernate createSQLQuery() method or to use JDBC directly to implement this data insert for Community Infobright data base?

Thanks,

Canicali

4

1 回答 1

0

采用的解决方案是将表引擎从 BRIGHTOUSE 更改为 MISAM。最后一个接受休眠生成的插入命令。在 SQL Create Table 语句中,可以在不更改数据库引擎默认值的情况下设置表的引擎。

create table test.Desenvolvedor (
    nome varchar(11),
    cidade varchar (255),
    estado varchar (255)
) engine = MYISAM
于 2015-03-31T13:28:56.627 回答