在我的Java/Seam/JbossAS应用程序中,我决定将我的Model类(hibernate实体)外化并将它们移到另一个项目中。该项目生成model.jar,然后由主应用程序使用。 model.jar依赖由Ivy解决。 用Ant构建主要应用程序毫无问题。然后我手动将model.jar复制到'mainapp.ear/lib'目录中。之后,我部署了应用程序,并且没有任何问题(尽管我注意到没有关于找到的映射的日志信息)。但是,当我想登陆,我得到异常:将实体移动到外部jar包后未映射
javax.el.ELException: javax.ejb.EJBTransactionRolledbackException:
org.hibernate.hql.ast.QuerySyntaxException: AppUser is not
mapped [select u from AppUser u where u.userName = :usernamePar]
有在此期间没有代码的变化,只是外化一些类,装入瓶内。这是否意味着,在编译主应用程序时需要Model类的源代码?
您的主应用程序根目录中是否包含hibernate.cfg.xml文件? – 2011-05-17 16:02:51
@Rafa de Castro Hibernate配置通过persistance.xml文件完成(路径是'app.ear/app.jar/META-INF/persistence.xml')文件,映射通过注释完成 - 也许这是问题? – user1293910asd 2011-05-18 07:42:57