未知的实体bean类:null,请验证此类是否已使用@Entity批注标记

时间:2013-06-25 22:24:33

标签: java java-ee jpa ejb entitymanager

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

2 个答案:

答案 0 :(得分:1)

如果您正在使用版本控制,应该是(甚至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包的等效包装类:
  • 布尔,字节,短,字符,整数,长,浮点和双。
  • 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中找到未列出的类。

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

答案 1 :(得分: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视为另一个问题,例如您的问题。