Hibernate Error – An AnnotationConfiguration instance is required to use
The Hibernate annotation is required “AnnotationConfiguration” instead of normal “Configuration()” to build the session factory.
INFO: Configuration resource: /hibernate.cfg.xml
Initial SessionFactory creation failed.org.hibernate.MappingException:
An AnnotationConfiguration instance is required to use <mapping class="com.mkyong.common.Stock"/>
Exception in thread "main" java.lang.ExceptionInInitializerError
at com.mkyong.persistence.HibernateUtil.buildSessionFactory(HibernateUtil.java:19)
at com.mkyong.persistence.HibernateUtil.<clinit>(HibernateUtil.java:8)
at com.mkyong.common.App.main(App.java:11)
Caused by: org.hibernate.MappingException: An AnnotationConfiguration instance is required to use <mapping class="com.mkyong.common.Stock"/>
at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1600)
at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1555)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1534)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1508)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1428)
at org.hibernate.cfg.Configuration.configure(Configuration.java:1414)
at com.mkyong.persistence.HibernateUtil.buildSessionFactory(HibernateUtil.java:13)
... 2 more
Solution
1. Download the Hibernate annotation library
You can download the library from Hibernate official website
Or
Add the dependency in Maven’s pom.xml
<!-- Hibernate annotation -->
<dependency>
<groupId>hibernate-annotations</groupId>
<artifactId>hibernate-annotations</artifactId>
<version>3.3.0.GA</version>
</dependency>
P.S You may need to include the JBoss repository in order to download the Hibernate annotation library.
<repositories>
<repository>
<id>JBoss repository</id>
<url>http://repository.jboss.com/maven2/</url>
</repository>
</repositories>
2. Use AnnotationConfiguration to build session factory
Normal Hibernate XML file mapping is using Configuration()
return new Configuration().configure().buildSessionFactory();
For Hibernate annotation, you have to change it to “AnnotationConfiguration”
return new AnnotationConfiguration().configure().buildSessionFactory();
HibernateUtil.java
A full example of “HibernateUtil.java” of using “AnnotationConfiguration” for Hibernate annotation applacation.
package com.mkyong.persistence;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.AnnotationConfiguration;
public class HibernateUtil {
private static final SessionFactory sessionFactory = buildSessionFactory();
private static SessionFactory buildSessionFactory() {
try {
// Create the SessionFactory from hibernate.cfg.xml
return new AnnotationConfiguration().configure().buildSessionFactory();
}
catch (Throwable ex) {
// Make sure you log the exception, as it might be swallowed
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
public static void shutdown() {
// Close caches and connection pools
getSessionFactory().close();
}
}
SessionFactory factory= new AnnotationConfiguration().configure().buildSessionFactory();
and it worked for me
Hi
Im getting this exception only when i use xml based and annotation based hibernet together. that means, in config file, i have mapping for hbm as well as mapping for the classes for annotated class.
but seperately they work as expected. Please suggest me if there anything im missing
Thanks.. It helped!
you can find some more details in the below link,”http://javadomain.in/solved-an-annotationconfiguration-instance-is-required-to-use-mapping-class/”
After changing Configuration to AnnotationConfiguration, I am facing below exception-
Exception in thread “main” java.lang.NoSuchFieldError: sqlResultSetMappings
Please let me know what needs to be done?
Thanks,
Anup
After study a few of the blog posts on your website now, and I really like your means of blogging. I bookmarked it to my bookmark website checklist and will be checking again soon. Pls check out my website online as nicely and let me know what you think.
Awesome website.. Superb content. 🙂
Mr Mkyong, Your tutorials rock, “Thank you” is not enough, I was wondering If you could take me up on my offer of dinner 😉
i think can add commit();
Hi
I am also facing same problem.
When i use AnnotationConfiguration it says ‘type AnnotationConfiguration is deprecated’
& when i switch to use configuration it gives error
org.hibernate.MappingException: An AnnotationConfiguration instance is required to use mapping class
Hi
I am also facing same problem.
When i use AnnotationConfiguration it says ‘type AnnotationConfiguration is deprecated’
& when i switch to use configuration it gives error
org.hibernate.MappingException: An AnnotationConfiguration instance is required to use <mapping class="”>
please suggest if there is any alternate.
IS the annotations library compatible with Hibernate 3.2.5?
Which version are you guys using?
thanks a lot .
It solved my problem, the following is syntax used
//sessionFactory = new Configuration().configure().buildSessionFactory();
sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
// sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
sessionFactory = new Configuration().configure().buildSessionFactory();
Very Useful, it solved my problem as well.
Very useful post ! It helped a lot. Tks
Hi. AnnotationConfiguration is deprecated now. How to use it with Configyration?
Thank you! the second solution solved my problem…
this solved my immediate problem, thx for posting it!
Many thanks , u solved my problem
Hi, how can you solve this problem.??
SessionFactory sf=new AnnotationConfiguration().configure().buildSessionFactory();
i am getting xception in thread “main” org.hibernate.MappingException: An AnnotationConfiguration instance is required to use
Hi bro, is the solution above “AnnotationConfiguration” not working?
I still got that error and on top of that AnnotationConfiguration is deprecated.
What do you use?
I am also facing similar problem