Hibernate反向工程:持久化单元未找到。

3
我在Eclipse IDE中有一个Java Maven3项目,安装了jboss工具,并且正在使用hibernate4。我正在尝试设置hibernate配置以测试hql查询,但问题是它说找不到持久性单元。我已经将persistence.xml放置在src/main/resources/META-INF/persistence.xml下。是否需要设置一些maven配置?以下是您需要翻译的内容:

project structure

hibenrate configuration

hibernate configuration

persistence unit not found error

persistence.xml

   <persistence-unit  name="ypay">
    <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
    <jta-data-source>java:jboss/datasources/ypay</jta-data-source>
    <properties>
     <!-- Properties for Hibernate -->
     <!-- <property name="hibernate.hbm2ddl.auto" value="validate" /> -->
     <property name="hibernate.show_sql" value="false" />
     <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLInnoDBDialect" />  
    </properties>

hibernate.properties

hibernate.connection.password=
hibernate.connection.username=root
hibernate.connection.driver_class=com.mysql.jdbc.Driver
hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect
hibernate.connection.url=jdbc:mysql://****************:3306/ypay?useUnicode=true&amp;characterEncoding=UTF-8
hibernate.connection.provider_class=org.hibernate.connection.DriverManagerConnectionProvider
hibernate.datasource=
hibernate.transaction.manager_lookup_class=

@Andrei 在之前的项目中,使用 Eclipse Juno 时两个文件都能正常工作,但现在在 Kepler 中出现了问题,我不明白为什么这两个文件不应该在那里。 - simonC
@simonC 如果 META-INF/persistence.xml 已经在你的类路径上,那么你不需要显式地选择一个持久化单元,是这样吗? - JamesB
如果我从Hibernate编辑配置中删除持久化单元条目,问题仍然存在,此时它会显示“未找到持久化单元:null”。@JamesB - simonC
@Andrei...这不是应用程序中的错误,我想要从数据库进行反向工程,创建实体,并能够通过HQL编辑器测试HQL语句...应用程序本身运行良好。 - simonC
@JigarJoshi 这些细节没有任何有用的信息.... org.hibernate.console.HibernateConsoleRuntimeException: 找不到持久化单元:'ypay'。 找不到持久化单元:'ypay'。 <无消息> - simonC
显示剩余7条评论
1个回答

0
你需要一个包含 META-INF/persistence.xml 的文件。
<persistence-unit name="ypay">

通常将其放置在 WEB-INF/classes/META-INF 中(当使用 Maven 时,可以尝试将其放置在 src/main/resources/META-INF 中)。

有关详细信息,请参见this文档。


我有一个 persistence.xml 文件,在其中包含一个名为 ypay 的持久化单元,它位于 META-INF 中,但在 ear 项目的 EJB 部分中而不是 war 中。正如我在先前的评论中所说,应用程序本身在运行时工作正常,问题出现在尝试在 Eclipse 中配置 Hibernate 工具的连接时,我想用它来测试查询。我将尝试在 war 中也放置 persistence.xml,但我非常怀疑它是否会奏效。 - simonC
我甚至在war包中没有src/main/resources/META-INF目录,但是在ejb项目中有,正如您在第一张图片中所看到的。 - simonC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接