Ungültige syntax error "type= MyISAM" in DDL generiert durch Hibernate
Bin ich immer diesen Fehler bei meinem Java-code
Caused by :`com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException`: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB` server version for the right syntax to use near 'type = `MyISAM`' at line 1
Dies ist die Abfrage übergeben von hibernate:
Hibernate: create table EMPLOYEE (emp_id integer not null, FNAME varchar(255), LNAME varchar(255), primary key (emp_id)) type=MyISAM
Ich habe mir bei allen Fragen im Zusammenhang mit diesem Fehler. Aber in allen Fragen, die die Nutzer selbst die Weitergabe Abfrage "type = MyISAM
", so Sie wechseln können "type
" zu "engine
", aber hier überwintern, ist verantwortlich für die Erstellung der Tabelle, so verstehe ich nicht, wo der Fehler ist und wie ich es beheben kann.
Dies ist meine Konfigurationsdatei:
<hibernate-configuration>
<session-factory >
<property name="hibernate.hbm2ddl.auto">create</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost/servletcheck</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password"> </property>
<property name="hibernate.dialect"> org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.show_sql">true</property>
<mapping resource="Employee.hbm.xml"/>
</session-factory>
</hibernate-configuration>
Dies ist mein mapping-Datei:
<hibernate-mapping>
<class name="first.Employee" table="EMPLOYEE">
<id name="id" type="int">
<column name="emp_id" />
<generator class="assigned" />
</id>
<property name="fname" type="java.lang.String">
<column name="FNAME" />
</property>
<property name="lname" type="java.lang.String">
<column name="LNAME" />
</property>
</class>
</hibernate-mapping>
Dies ist meine Klasse " Datei:
public class StoreData {
public static void main(String[] args) {
Configuration cfg=new Configuration();
cfg.configure("hibernate.cfg.xml");
SessionFactory factory=cfg.buildSessionFactory();
Session session=factory.openSession();
org.hibernate.Transaction t=session.beginTransaction();
Employee e=new Employee();
e.setId(1);
e.setFname("yogesh");
e.setLname("Meghnani");
session.persist(e);
t.commit();
}
}
- Lesen Sie bitte Frage nochmal...ich hatte fast Lesen Sie alle Fragen im Zusammenhang mit it..das man Sie verlinkt auch,aber ich nicht bekam keine Lösung.In allen, die Frage, die Sie auf der Durchreise sind sql-Abfrage, aber hier bin ich mit hibernate zu Tabelle erstellen.
- Diese Frage ist nicht ein Duplikat der verlinkten Frage, wie das problem hier ist insbesondere die DDL generiert durch Hibernate-Dialekt, nicht ein Allgemeines problem.
- Es ist nicht eine "exakte Kopie". Der OP weiß, dass
TYPE
ist das problem, sondern die "doppelte" nicht sagen, wie es zu lösen fürhibernate
. So, hiermit melde ich mich un-duplizieren-von dieser Frage. Und lassen Sie Markieren den Akzeptierten Antworten als gut.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem ist, dass der Dialekt
org.hibernate.dialect.MySQLDialect
ist für MySQL 4.x oder früher. Das fragmentTYPE=MYISAM
generiert wird, die von dieser Dialekt war veraltet in MySQL 4.0 und entfernt 5.5.Gegeben, dass Sie verwenden, MariaDB, müssen Sie (abhängig von der version von MariaDB und - vielleicht - die version von Hibernate) ein:
org.hibernate.dialect.MariaDBDialect
org.hibernate.dialect.MariaDB53Dialect
Wenn Sie MySQL verwenden, oder wenn die beiden oben genannten Dialekte für MariaDB existiert nicht in Ihrer version von Hibernate:
org.hibernate.dialect.MySQL5Dialect
org.hibernate.dialect.MySQL55Dialect
org.hibernate.dialect.MySQL57Dialect
Seine ein Dialekt, der im Zusammenhang mit Ausgabe, statt
org.hibernate.dialect.MySQLDialect
können Sie gehen mitorg.hibernate.dialect.MySQL5Dialect
. Es funktioniert glücklich.Als Dialekt ändern, ist nicht für mich arbeiten, wenn ich mit MySql-Datenbank.
Einfachste Weg, herunterladen und verwenden eine standard-version von Sql-Konnektor. Funktionierte absolut in Ordnung.
http://www.java2s.com/Code/Jar/m/Downloadmysqlconnectorjar.htm