Eclipse中的JPA项目问题 - 类注释中的错误@Entity:表"xxx"无法解析

Ada*_*wka 10 eclipse postgresql ejb jpa glassfish

我正在尝试在Eclipse(Indigo)中创建简单的EJB + JPA项目.我创建了新的EJB项目,其中:

  • 目标:现有的Glassfish服务器
  • 配置:EJB模块+ GlassFish部署描述符文件+ Java + JPA在窗口JPA Facet我声明连接到postgres db(ping成功)

我在尝试定义实体时遇到问题:表"Employee"无法解析.我添加了带有指定名称参数的@Table注释,但这不起作用.我的persistence.xml文件:

    <persistence-unit name="pu_name">
    <jta-data-source>jdbc/baza1Postgres</jta-data-source>
</persistence-unit>
Run Code Online (Sandbox Code Playgroud)

在glassfish中,我定义了名为JDBC资源的JDBC资源:"jdbc/baza1Postgres
"如果我的表存在,"eclipse如何知道"?还有什么我应该配置?

小智 36

发现此解决方案为"表xxx无法解析"错误:

在Eclipse中,转到Window - > Preferences - > Validation,JPA Validator,关闭Build.

有时你正在开发一个应用程序以及一个新的数据库模式,但是你得到了这个:

无法解析表"XXXX"的架构"null".

无论如何,这可能不应该默认开启; 人们最有可能从头开始构建新的应用程序而不是构建适合旧数据库的新应用程序,即使它们构建的是旧的,Eclipse的JPA工具也有来自表函数的构建实体."


bob*_*wl2 7

在Eclipse中让它变得快乐我必须通过JPA Tools创建表.

右键单击"项目">"JPA工具">"从实体生成表"

我想你也可以关闭验证,但创建表似乎更有意义.


Ros*_*oss 3

您需要在 persistence.xml 文件中指定在何处查找实体,请查看Java EE 6 教程,以下是从中获取的示例:

持久性单元

持久性单元定义了由应用程序中的 EntityManager 实例管理的所有实体类的集合。这组实体类表示单个数据存储中包含的数据。

持久性单元由 persistence.xml 配置文件定义。以下是 persistence.xml 文件的示例:

 <persistence>
   <persistence-unit name="OrderManagement">
      <description>This unit manages orders and customers.
            It does not rely on any vendor-specific features and can
            therefore be deployed to any persistence provider.
      </description>
      <jta-data-source>jdbc/MyOrderDB</jta-data-source>
      <jar-file>MyOrderApp.jar</jar-file>
      <class>com.widgets.Order</class>
      <class>com.widgets.Customer</class>
  </persistence-unit>
</persistence> 
Run Code Online (Sandbox Code Playgroud)

该文件定义了一个名为 OrderManagement 的持久性单元,它使用 JTA 感知的数据源:jdbc/MyOrderDB。jar-file 和 class 元素指定托管持久性类:实体类、可嵌入类和映射超类。jar-file 元素指定对包含托管持久性类的打包持久性单元可见的 JAR 文件,而 class 元素显式命名托管持久性类。

另请使用 hibernate 查看此stackoverflow 问题,您可以扫描具有 Entity 注释的类