未知实体bean类:null,请确保已使用@Entity批注标记了该类

问题描述 投票:0回答:2

我的应用程序是具有jpa和ejb的java ee应用程序。一切正常,但我今天尝试运行它,但没有任何效果。标题中的例外是它不起作用的原因。所有实体都标有@Entity批注。我读过一些类似的主题,但我不知道如何解决它!

java jakarta-ee jpa ejb entitymanager
2个回答
1
投票

如果使用的是版本控制,您应该是(甚至没有远程的git,然后将“一切工作完美”的版本与今天的版本进行比较。

没有更多信息,我想您有一个列出的类(在persistence.xml或orm.xml中)不再存在或已重构为其他程序包。

这里有三件事可以帮助您对其进行跟踪。

1。打开JPA提供程序的日志记录。

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

2。检查标记为@Entity的类的字段。

以下列表中没有的任何字段都必须具有@Entity@Embeddable批注。 (注意:枚举字段必须说明其持续时间,例如@Enumerated(EnumType.STRING)

  • 原始类型:布尔值,字节,短型,字符,整数,长型,浮点型和双精度型。
  • 来自包java.lang的等效包装器类:
  • 布尔,字节,短,字符,整数,长,浮点和双精度。
  • java.math.BigInteger,java.math.BigDecimal。
  • java.lang.String。
  • java.util.Date,java.util.Calendar,
  • java.sql.Date,java.sql.Time,java.sql.Timestamp。

((来源:objectdb

3。检查您的persistence.xml

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

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


0
投票

“未知实体bean类”

此消息在实体未正确加载时发生。某些Eclipselink版本(例如2.7.1)具有一些错误,这些错误已在更新的版本(例如2.7.5)中修复。]

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

请参阅this link作为您的另一个问题。

© www.soinside.com 2019 - 2024. All rights reserved.