Exception in thread "main" org.hibernate.UnknownEntityTypeException: Cannot find persister

I have to ask about it, I tried almost everything.

Entity class


@Entity
@Table(name="UserInfo")
public class User {

    @Id@Column(name="user_name")
    private String userName;

    @Column(name="user_id")
    private Integer userId;
}

<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
        <property name="hibernate.connection.url">jdbc:sqlserver://localhost:1433;databaseName=BankingApplication</property>
        <property name="hibernate.connection.username">sa</property>
        <property name="hibernate.connection.password">2OmniWay</property>

        <!-- org.hibernate.HibernateException: No CurrentSessionContext configured! -->
        <property name="hibernate.current_session_context_class">thread</property>
         <property name="hibernate.default_schema">dbo</property>
        <!-- Mapping with model class containing annotations -->
        <mapping class="pojo.User"/>
    </session-factory>  
</hibernate-configuration>

SeesionFactory

// Create the SessionFactory from hibernate.cfg.xml
Configuration configuration = new Configuration();
configuration.configure("hibernate-annotation.cfg.xml");
System.out.println("Hibernate Annotation Configuration loaded");
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().                                    applySettings(configuration.getProperties()).build();
 System.out.println("Hibernate Annotation serviceRegistry created");             
SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);

return sessionFactory;

Retrieving an Object Stored in DB


SessionFactory sessionFactory = HibernateUtil.getSessionAnnotationFactory();
        Session session = sessionFactory.openSession();
        Account account = null;
        try{
        account = (Account) session.get(Account.class, id);

I get the exception mentioned in the topic. I just tripled, checked everything, but it just doesn't work.enter image description here

Any suggestion would be helpful.

___________ Stack Trace _________

 Exception in thread "main" org.hibernate.UnknownEntityTypeException: Unable to locate persister: pojo.User
at org.hibernate.internal.SessionFactoryImpl.locateEntityPersister(SessionFactoryImpl.java:792)
at org.hibernate.internal.SessionImpl.locateEntityPersister(SessionImpl.java:2652)
at org.hibernate.internal.SessionImpl.access$2500(SessionImpl.java:164)
at org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.<init>(SessionImpl.java:2590)
at org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.<init>(SessionImpl.java:2577)
at org.hibernate.internal.SessionImpl.byId(SessionImpl.java:1044)
at org.hibernate.internal.SessionImpl.get(SessionImpl.java:955)
at business.ManageAccount.getAccountDetails(ManageAccount.java:18)
at Utils.TestConnecttion.main(TestConnecttion.java:16)
+4
source share
6 answers

You need to specifically add feature classes to the configuration. By default, it loads classes, but does not initialize entity classes. For this configuration, .addAnnotatedClass () or addResource will allow this.

+1

"ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder(). applySettings (configuration.getProperties()). build();"

SessionFactory

"ServiceRegistry serviceRegistry = new ServiceRegistryBuilder(). applySettings (           configuration.getProperties()). buildServiceRegistry();"

sessionfactory serviceRegistry

.

+1

Serializable, :

 public class User implements Serializable{
   }
0
//I am using Hib5,I have created SF like this and it is working
private static SessionFactory sessionFactory;
public static SessionFactory getSessionFactory() {
        if (sessionFactory == null) {
            StandardServiceRegistry standardRegistry = new StandardServiceRegistryBuilder().configure().build();
            Metadata metadata = new MetadataSources(standardRegistry).getMetadataBuilder().build();
            sessionFactory = metadata.getSessionFactoryBuilder().build();
        }
        return sessionFactory;
    }
0

Dialect Hibernate. .

<property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property>
-1

Hibernate 4.x, Hibernate 5.x.

This configuration file is causing this problem. In the XML configuration file, you added a mapping file, for example:

mapping resource="hibernate.map.xml"

Remove it and add it programmatically instead:

configure.addResource(hibernate.map.xml);

This will certainly work.

-2
source

Source: https://habr.com/ru/post/1618852/


All Articles