Hibernate: для использования экземпляра AnnotationConfiguration требуется ... ошибка
Я строю свой HibernateUtil таким образом:
public class HibernateUtil {
private static final SessionFactory sessionFactory;
static {
try {
// Create the SessionFactory from standard (hibernate.cfg.xml) config file.
sessionFactory = new Configuration().configure().buildSessionFactory();
} catch (Throwable ex) {
// Log the exception.
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
поэтому, когда я пытаюсь выполнить команду HQL в Редакторе HQL в Eclipse (с помощью Hibernate Tools), дает следующую ошибку: Почему это происходит ? Она не должна менять AnnotationConfiguration по ConfigureAnnotation ?
обновление
<?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.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.password"><password></property>
<property name="hibernate.connection.url">jdbc:mysql://<hostname>:3306/<schema></property>
<property name="hibernate.connection.username">root</property>
<!-- <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> -->
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- SQL -->
<property name="hibernate.format_sql">true</property>
<property name="hibernate.show_sql">true</property>
<!-- C3P0 -->
<property name="hibernate.c3p0.acquire_increment">2</property>
<property name="hibernate.c3p0.max_size">20</property>
<property name="hibernate.c3p0.min_size">5</property>
<property name="hibernate.c3p0.timeout">180</property>
<property name="hibernate.c3p0.idle_test_period">100</property>
<!-- Classes -->
<mapping class="com.suaparte.pojo.Area" />
</session-factory>
</hibernate-configuration>
спасибо заранее.
9 ответов
Если у вас есть эта ошибка, и вы используете hibernate version >=4.0, проблема, вероятно, находится в конфигурации консоли Hibernate.
попробуйте перейти к:
Выполнить - > Выполнить Конфигурации
и откройте созданную вами конфигурацию, на главной вкладке измените тип с Core на Annotations. Вот скриншот:
Я изменил мой код
Configuration cfg=new Configuration();
cfg.configure("hibernate.cfg.xml");
SessionFactory factory=cfg.buildSessionFactory();
до
SessionFactory factory=new AnnotationConfiguration().configure("hibernate.cfg.xml").buildSessionFactory();
также я не добавил аннотации "@Id " в свой класс POJO. После добавления "@Id " я решил свою проблему полностью.
попробуйте построить как:
AnnotationConfiguration().configure().buildSessionFactory();
для этого вам нужно следующее:
Hibernate annotations
С уважением.
УДО.
попробуйте загрузить версию Hibernate distribution jars 3.6.4., используйте jre1.6.0_07 версия.
делая это, вы можете создать новый объект конфигурации, как показано ниже, вместо использования AnnotationConfiguration()
.
SessionFactory sessionFactory = new Configuration().configure().buildSessionFactory();
попробуйте изменить настройки().формировать.)(buildSessionFactory () в AnnotationConfiguration ().формировать.)(buildSessionFactory () и включить Hibernate-аннотации.jar в пути класса
AnnotationConfiguration configuration=new AnnotationConfiguration();
configuration.configure("hibernate.cfg.xml");
SessionFactory factory=configuration.buildSessionFactory();
Session session=factory.openSession();