0

我的应用程序是一个带有 jpa 和 ejb 的 java ee 应用程序。一切都很完美,但我今天尝试运行它,但没有任何效果。标题中的例外是它不起作用的原因。所有实体都标有@Entity 注释。我读了一些类似的主题,但我不明白如何解决它!

4

2 回答 2

2

如果您正在使用版本控制(即使是没有遥控器的git),那么只需将“一切正常”的版本与今天的版本进行比较。

如果没有更多信息,我猜您有一个已列出的类(在 persistence.xml 或 orm.xml 中)不再存在或已重构为不同的包。

这里有三件事可以帮助你追踪它。

1. 开启 JPA 提供者的日志。

对于 EclipseLink,它将是:<property name="eclipselink.logging.level" value="FINEST" />

2. 检查标有 的类的字段@Entity

不在以下列表中的任何字段都必须具有@Entity@Embeddable注释。(注意:枚举字段必须说明它们的持久性,例如@Enumerated(EnumType.STRING)

  • 原始类型:boolean、byte、short、char、int、long、float 和 double。
  • 来自包 java.lang 的等效包装类:
  • Boolean、Byte、Short、Character、Integer、Long、Float 和 Double。
  • java.math.BigInteger,java.math.BigDecimal。
  • java.lang.String。
  • java.util.Date,java.util.Calendar,
  • java.sql.Date、java.sql.Time、java.sql.Timestamp。

(来源:对象数据库

3.检查你的persistence.xml

你有<exclude-unlisted-classes>true</exclude-unlisted-classes>吗?如果是这样,则将其更改为false,如果可行,则只需在 IDE 中找到未列出的类。

如果列出了类,它们是否仍然存在?使用完全相同的软件包?

于 2013-06-25T23:43:21.893 回答
0

“未知实体 bean 类”

当实体未正确加载时会出现此消息。某些 Eclipselink 版本(例如 2.7.1)有一些错误已在较新版本(例如 2.7.5)中修复。

<dependency>
    <groupId>org.eclipse.persistence</groupId>
    <artifactId>eclipselink</artifactId>
    <version>2.7.5</version>
</dependency>

将此链接视为另一个问题,例如您的问题。

于 2020-01-01T06:59:45.333 回答