Hibernate – The type AnnotationConfiguration is deprecated

Problem

Working with Hibernate 3.6, noticed the previous “org.hibernate.cfg.AnnotationConfiguration“, is marked as “deprecated“.

Code snippets …


import org.hibernate.cfg.AnnotationConfiguration;
//...
private static SessionFactory buildSessionFactory() {
	try {

		return new AnnotationConfiguration().configure().buildSessionFactory();
			
	} catch (Throwable ex) {
	
		System.err.println("Initial SessionFactory creation failed." + ex);
		throw new ExceptionInInitializerError(ex);
	}
}

The code is still working, just keep displaying the deprecated warning message, is there any replacement for “AnnotationConfiguration” ?

Solution

In Hibernate 3.6, “org.hibernate.cfg.AnnotationConfiguration” is deprecated, and all its functionality has been moved to “org.hibernate.cfg.Configuration“.

So , you can safely replace your “AnnotationConfiguration” with “Configuration” class.

Code snippets …


import org.hibernate.cfg.Configuration;
//...
private static SessionFactory buildSessionFactory() {
	try {

		return new Configuration().configure().buildSessionFactory();
			
	} catch (Throwable ex) {
	
		System.err.println("Initial SessionFactory creation failed." + ex);
		throw new ExceptionInInitializerError(ex);
	}
}

References

  1. http://docs.jboss.org/hibernate/core/3.6/javadocs/org/hibernate/cfg/AnnotationConfiguration.html
  2. http://docs.jboss.org/hibernate/core/3.6/javadocs/org/hibernate/cfg/Configuration.html

11 comments on “Hibernate – The type AnnotationConfiguration is deprecated

  1. What happend with Hibernate 5??? where is the annotationConfiguration class??

    Reply
  2. i’ve replayed JUnit test method to this:

            @BeforeClass
    	public static void beforeClass() {
    		//new SchemaExport(new AnnotationConfiguration().configure()).create(false, true);
    		//sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
    		sessionFactory = new Configuration().configure().buildSessionFactory();
    	}

    and the method is still remarked with a deleted line through it(still deprecated).

    Reply
  3. but using new configuration() will gives the error required annotated instance to work..

    Reply
    1. hello himanshu. use this..

      new Configuration().addAnnotatedClass(Users.class).configure();

      simply call addAnnotatedClass() method and pass your class which contains annotations.

      Reply
      1. The References says:
        Parameters:
        annotatedClass – The class containing annotations.
        But in my project,there are many classes configed in the annotation way.So, how can i use the method and set peremeter.

        thanX.

        Reply
        1. in that case, you can create a method and pass your class such this.

          public void getInitializedConfiguration(Class kelas) {
          	new Configuration().addAnnotatedClass(kelas).configure();
          }
          
          Reply

Leave a Comment

Your email address will not be published. Required fields are marked *