Я недавно начал пытаться использовать Hibernate, но делаю это в Netbeans.Это привело к тому, что мне пришлось использовать этот пример проекта , чтобы попытаться запустить меня.
К сожалению, на этапе "Перечисление названий фильмов и получение актеров с использованием HQL-запросов" мои HQL-запросы не дают результатов и вместо этого дают сбой, за исключением:
org.hibernate.exception.SQLGrammarException: could not execute query
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from limit 100' at line 1
Кажется, что HQL не генерирует правильные операторы MySQL, но я не могу понять, почему,пока я следовал примеру до буквы.
Я пытаюсь подключиться к локальной базе данных MySQL с именем 'sakila' со следующими деталями:
jdbc:mysql://localhost:3306/sakila
, что выглядитработать правильно, так как я могу просматривать таблицы из Netbeans без проблем.
Мой hibernate.cfg.xml выглядит следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/sakila</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.show_sql">true</property>
<property name="transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
<property name="hibernate.current_session_context_class">thread</property>
<property name="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</property>
<mapping resource="dvdrental/Language.hbm.xml"/>
<mapping resource="dvdrental/FilmActor.hbm.xml"/>
<mapping resource="dvdrental/FilmCategory.hbm.xml"/>
<mapping resource="dvdrental/Category.hbm.xml"/>
<mapping resource="dvdrental/Film.hbm.xml"/>
<mapping resource="dvdrental/Actor.hbm.xml"/>
</session-factory>
</hibernate-configuration>
Когда я использую HQL-запросокно, SQL, который он генерирует, только когда-либо говорит «выберите из», что явно неправильно, но я не могу понять, почему это вызвано?
Редактировать 1: Запрос HQLвкладка, показывающая мой ввод