0

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.

MrSir
  • 576
  • 2
  • 11
  • 29

0 Answers0