首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >线程“主”org.hibernate.UnknownEntityTypeException中的异常:无法找到持久化程序

线程“主”org.hibernate.UnknownEntityTypeException中的异常:无法找到持久化程序
EN

Stack Overflow用户
提问于 2015-12-07 07:12:31
回答 6查看 20.8K关注 0票数 9

我不得不问,我几乎什么都试过了。

实体类

代码语言:javascript
运行
复制
@Entity
@Table(name="UserInfo")
public class User {

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

    @Column(name="user_id")
    private Integer userId;
}
代码语言:javascript
运行
复制
<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

代码语言:javascript
运行
复制
// 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;

获取数据库中保存的对象

代码语言:javascript
运行
复制
SessionFactory sessionFactory = HibernateUtil.getSessionAnnotationFactory();
        Session session = sessionFactory.openSession();
        Account account = null;
        try{
        account = (Account) session.get(Account.class, id);

我在主题上被提到了例外。我只是检查了三倍,检查了所有东西,但都不起作用。

任何建议都会有帮助。

___________Stack Trace_________

代码语言:javascript
运行
复制
 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)
EN

回答 6

Stack Overflow用户

发布于 2015-12-07 10:12:35

您需要在配置中专门添加实体类。默认情况下,它加载类,但不初始化实体类。对于这个问题,configuration.addAnnotatedClass()或addResource将解决这个问题。

票数 1
EN

Stack Overflow用户

发布于 2015-12-07 11:10:58

替换您的代码

"ServiceRegistry serviceRegistry =新的serviceRegistry

从SessionFactory到

serviceRegistry serviceRegistry=新的ServiceRegistryBuilder().applySettings( configuration.getProperties()). buildServiceRegistry();

并尝试使您的sessionfactory和serviceRegistry在课堂上保持静态。

希望它对你有用。

票数 1
EN

Stack Overflow用户

发布于 2018-02-17 09:48:49

代码语言:javascript
运行
复制
//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;
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34128224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档