Update to this.
I am unable to configure persistency with both hibernate (Configuration.buildSessionFactory
) or base jpa (Persistence.createEntityManagerFactory
) if i use
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>5.2.12.Final</version>
</dependency>
In the hibernate case i have hibernate.cfg.xml
<?xml version='1.0' encoding='utf-8'?><!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<!-- Database connection settings -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/ifinances</property>
<property name="connection.username">infinite</property>
<property name="connection.password">skills</property>
<!-- SQL dialect -->
<property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
<!-- Echo all executed SQL to stdout -->
<property name="show_sql">true</property>
<mapping class="com.infiniteskills.data.entities.User"/>
<mapping class="com.infiniteskills.data.entities.Bank"/>
</session-factory>
</hibernate-configuration>
placed under src/main/resources
. Classes are mapped this way
<mapping class="com.infiniteskills.data.entities.User"/>
<mapping class="com.infiniteskills.data.entities.Bank"/>
If i run
Configuration configuration = new Configuration();
configuration.configure("hibernate.cfg.xml");
return configuration
.buildSessionFactory(new StandardServiceRegistryBuilder()
.applySettings(configuration.getProperties()).build()).openSession();
Whenever i try to use session methods that call configured classes it gives me org.hibernate.UnknownEntityTypeException: Unable to locate persister: [class-name]
It works perfectly if i use version 4.3.6.Final
.
If instead i have a jpa configuration using a persistence.xml
under src/main/resources/META-INF
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd" version="2.1">
<persistence-unit name="infinite-finances">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="javax.persistence.jdbc.user" value="infinite"/>
<property name="javax.persistence.jdbc.password" value="skills"/>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/ifinances"/>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLInnoDBDialect"/>
<property name="hibernate.show_sql" value="true"/>
</properties>
</persistence-unit>
and i configure it using
EntityManager em = Persistence.createEntityManagerFactory("infinite-finances").createEntityManager();
I have Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named infinite-finances with 5.2.12.Final
, and here again it configures and works perfectly with 4.3.6.Final
instead.