For my Java EE Project, using netbeans7.1, GlassFish3.2 and postgreSQL9.2 and I want to test JPA persistence classes.
I tryied javaee Persistance class to get an entityManager but it failed because Javaee6 can't be used for execution as i read. I also tryied Arquillian but i also failed to make it work. D'oh! So i want to create a main class to test JPA persistance using and HibernateUtil class and hibernate.cfg but when i run the main class i get this error:
run:
juin 13, 2013 11:27:18 AM org.hibernate.annotations.common.Version <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {4.0.1.Final}
juin 13, 2013 11:27:18 AM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.1.10.Final}
juin 13, 2013 11:27:18 AM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
juin 13, 2013 11:27:18 AM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
juin 13, 2013 11:27:18 AM org.hibernate.service.jdbc.connections.internal.ConnectionProviderInitiator initiateService
WARN: HHH000181: No appropriate connection provider encountered, assuming application will be supplying connections
Initial SessionFactory creation failed.org.hibernate.HibernateException: Connection cannot be null when 'hibernate.dialect' not set
Exception in thread "main" java.lang.ExceptionInInitializerError
at utils.HibernateUtils.<clinit>(HibernateUtils.java:26)
at tests.AlertTest.main(AlertTest.java:28)
Caused by: org.hibernate.HibernateException: Connection cannot be null when 'hibernate.dialect' not set
at org.hibernate.service.jdbc.dialect.internal.DialectFactoryImpl.determineDialect(DialectFactoryImpl.java:97)
at org.hibernate.service.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:67)
at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:174)
at org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:75)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:159)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:131)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:77)
at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2276)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2272)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1741)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1781)
at utils.HibernateUtils.<clinit>(HibernateUtils.java:23)
... 1 more
Java Result: 1
BUILD SUCCESSFUL (total time: 2 seconds)
Below is HibernateUtils
public class HibernateUtils {
private static final SessionFactory factory;
private static Session session;
static{
try{
factory = new AnnotationConfiguration().buildSessionFactory();
}catch(Throwable ex){
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory(){
return factory;
}
}
This is hibernate.cfg.xml
<hibernate-configuration>
<session-factory>
<property name="connection.driver_class">org.postgresql.Driver</property>
<property name="connection.url">jdbc:postgresql://localhost:5432/postgres</property>
<property name="connection.username">postgres</property>
<property name="connection.password">root</property>
<property name="connection.pool_size">1</property>
<property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.hbm2ddl.auto">update</property>
</session-factory>
</hibernate-configuration>