当前位置:  开发笔记 > 数据库 > 正文

Hibernate:未映射的类关联异常

如何解决《Hibernate:未映射的类关联异常》经验,为你挑选了1个好方法。

我知道这应该是一个非常基本的问题需要修复,但1)我对Hibernate相对较新,2)我发现的修复程序(似乎)不适用于此处.

以下是我得到的例外情况:

org.hibernate.MappingException: An association from the table POSTS refers to
 an unmapped class: com.beans.User at 
 org.hibernate.cfg.Configuration.secondPassCompileForeignKeys(Configuration.java:1285)

当Hibernate尝试自行配置时会发生这种情况.

我正在使用的对象是用户,帖子(抽象超类),状态和注释(Post的具体子类).每个都是来自两个表之一的bean:USERS和POSTS.用户对象很漂亮:许多描述用户的平淡字段.除了类似的无聊字段,状态和评论都有所有者(发布它的用户).状态与注释的区别在于,状态可以附加一个注释列表但没有父项,而注释没有子项,但有一个父项(是的,这基本上是Facebook).

从我所读到的,问题似乎是多对一的映射,但我似乎无法找到任何错误.这是我正在使用的三个配置文件.

hibernate.cfg.xml中:


    
        ...
        
        
        
    

User.hbm.xml:


    
        
            
            
        
        ...
    
</hibernate-mapping>

Post.hbm.xml:


    
        
            
            
                    
        
        
        
            
        
        
            
        
        
        
        
        
         
        

        
         
                
             
             
     
        

         
    

我觉得我需要在某处指定一个Status包含Comment的ArrayList这一事实,但是不是通过Post.hbm.xml文件中的"list"构造隐式完成的吗?

xml文件存在于我的类路径(WEB-INF/classes)中,并且.java文件本身也对应用程序可见.我将不胜感激!



1> ChssPly76..:

您发布的异常是由您在声明中明确指定实体名称而未在其上指定实例名称引起的.实体名称是一个特殊属性,用于区分基于同一类的不同映射.你不需要它来映射.

也就是说,您的映射存在多个其他问题:

    父映射是错误的.根据定义,它不能一对一 - 虽然这篇文章只有一个父母,但另一个帖子可能有同一个父母(特别是评论),这使父母的结社一对多结束.您需要将其映射为相反.

    评论列表实际上不是一个列表,除非你有一个特殊的列来维护它的索引(你没有判断为空 - 和无效 - 声明).相反,将其映射.

    评论列表确实应该用inverse = true映射.

    本身不是问题,但它使您的映射难以阅读 - 不需要嵌套元素; 您可以将其作为属性,或者如果列名称与属性名称匹配则完全跳过它.同样,没有任何意义在任何地方都有update = false - 如果你不希望你的帖子更新,请不要保存它们:-)


Hibernate欢迎你,祝你好运.它起初有点难,但在一段时间后变成了第二天性.事实上,你已经设法让它在仅仅3天后工作,这表明你将来不会有太多问题:-)
哇,非常感谢你!很明显我还有很多东西可以学习这个框架,因为在我按照你的建议后,我不得不顺序处理至少十几个新的异常,搞乱我的Hibernate配置的其他方面.这次我的错误更加直截了当,一切似乎都在运行:)这是我第一次使用Hibernate驱动的应用程序,经过三天的学习后它才会呼吸!非常感谢您的帮助!
推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有