将工程A的实体类打成jar包,在A工程中,测试用列可以良好运行;
将jar放到另外一个工程B中,运行B的用列时,报以下错误:
org.springframework.orm.hibernate3.HibernateQueryException: User is not mapped [from User ep where ep.empeeAcct = ?]; .....后面错误省略。另外:我的实体映射采用的是Hibernate注解方式,
不知道问题描述清楚了没有,有不明白的请跟帖~~~
问题解决,立即散分,老规矩:最先解决问题者得一半以上分!

解决方案 »

  1.   

    映射文件出错,试试查看下你的映射文件中映射User实体类的路径是否正确
      

  2.   

    检查是否在hibernate.cfg.xml文件中做了配置。
      

  3.   


    映射问题没有问题,因为A工程有测试用列,对其增删改都进行了测试,没有问题的,
    关键是将这些实体打成jar包之后,放到另外一个工程,就找不到实体了!当然,另外一个工程的实体查找方式和A一样!
      

  4.   


    配置上没有问题,因为如果将源文件拷贝到Eclipse工程B中,则B工程的CRUD测试用列可以跑通。
      

  5.   

    你只是把实体类打成jar包,要在B工程用的话就得在B工程的配置文件上加入这些实体类的映射。
      

  6.   


    这些工作已经做了,否则B工程的用列是跑不通的;
    配置上没有问题,因为如果将 A工程的实体源文件 拷贝到 Eclipse工程B中,则B工程的CRUD测试用列可以跑通;如果将再将 A工程的实体源文件 从B工程中删除,则B工程用列会报错:User is not mapped!
      

  7.   

    user表没有在hibernate.cfg.xml 文件中配置.
      

  8.   

    看看AB两个工程中user的包结构相同么?
      

  9.   

    hql语句前面没少select *??
      

  10.   

    鄙视 菜鸟错了 还不肯承认 看看AB两个工程中user的包结构相同么?  我怀疑 他就答对了
      

  11.   

    Configue:
    <mapping resource="com/ctoc/post/pojo/Brand.hbm.xml"/>Annotation:
    <mapping class="com.ctoc.post.pojo.Brand"/>
      

  12.   


    user只存在A工程中,只不过被打成了jar,然后放到B工程;
    另外映射用的是注解,不是xml方式;
      

  13.   


    用的是"packagesToScan",到指定包下寻找实体,估计是打成jar后,spring无法正常找到相应的实体
      

  14.   

    我感觉12楼说的有道理,出现这种问题就是 
    1。 映射文件不对
    2。表没有在hibernate.cfg.xml 文件中配置.
      

  15.   

    哎,看到有人回复了,但大多数人,没看清题意;
    其实问题的关键是:如果实体文件编译之后打成jar,放入另外一个过程中,就算注解和路径没有错误,hibernate也无法映射。感兴趣的自己动手尝试下,会更清楚一些
      

  16.   

    你把createQuery改为createSQLQuery试试吧
      

  17.   

    经过调试源码,在spring AnnotationSessionFactoryBean 的scanPackages方法中有如下代码
    for (String pkg : this.packagesToScan) {
          String pattern = ResourcePatternResolver.CLASSPATH_ALL_URL_PREFIX +
                       ClassUtils.convertClassNameToResourcePath(pkg) +RESOURCE_PATTERN;
          Resource[] resources = this.resourcePatternResolver.getResources(pattern);resources是通过反射去找配置的类,如果packagesToScan指定的报名在jar包中,是找不到路径的,
    我这边打断点找到的url是apache-tomcat-6.0.32\webapps\320ServiceManagement\WEB-INF\classes\stim\servicemanagement\entity\AppService.class