Java >> Java tutorial >  >> Tag >> Jdbc

GenerationTarget stødte på undtagelse, der accepterer kommando:Fejl ved udførelse af DDL via JDBC Statement

Du bør prøve en anden dialekt somorg.hibernate.dialect.MySQL5Dialect ELLER org.hibernate.dialect.MySQLMyISAMDialect ELLER org.hibernate.dialect.MySQLInnoDBDialect for at se, hvilken der virker for dig.

Alt i alt genererer din nuværende dialekt , type=MyISAM mens det skulle være , ENGINE=MyISAM i oprette tabelforespørgsel.

mysql fejl 'TYPE=MyISAM'

Du bør også læse dette, hvorfor skal jeg konfigurere SQL-dialekten for en datakilde?

Dine logfiler siger, at denne forespørgsel blev forsøgt udført , create table MyTable (id integer not null, name varchar(255), primary key (id)) type=MyISAM så du bør prøve at udføre den forespørgsel direkte på mysql kommandoprompt for at se, om det virker for din MySQL-version.

Du skal også angive din MySQL-version.

Håber det hjælper !!


Du bruger en opdateret version af MySQL men bruger og gammel dialect

Brug enten,

<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>

ELLER

<property name="hibernate.dialect">org.hibernate.dialect.MySQL8Dialect</property>

i hibernate.cfg.xml fil.

Dette forhindrer dig i at få dialect problemer.


Årsagen til, at du står over for denne fejl, kan være en af ​​årsagerne nedenfor:-

  • Kolonnenavnet i DB-scriptet og model-/entitetsklassen er forskellige.
  • Der er en stavefejl i din konfigurationsfil, mens du nævner egenskabsværdien.
  • MySQL-versionen bliver ikke matchet med den dialekt, du nævner.

Jeg stod over for denne fejl, fordi jeg ændrede kolonnenavnene i mit DATABASE SCRIPT, men glemte at ændre det i klassen Model/Entity. Så efter 4 timers træk i hårene gjorde jeg simpelthen dette, og min ansøgning begyndte at køre.


Java tag