【问题标题】:JPA Unknown entity type ExceptionJPA 未知实体类型异常
【发布时间】:2015-10-03 21:03:37
【问题描述】:
@Entity
@Table(name = "persons")    
public class Person implements Serializable {

        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        @Basic(optional = false)
        @Column(name = "id")
        private Integer id;
        @Basic(optional = false)
        @Enumerated(EnumType.STRING)
        @Column(name = "occupation")
        private Occupation occupation;
        @Basic(optional = false)
        @Column(name = "address")
        private String address;
    }

我正在尝试保留此对象,但我不断收到此异常:

原因:java.lang.IllegalArgumentException:对象:com.entity.Person(id[null]occupation[null] address["Toronto"] 不是已知的实体类型。

我试图查找此异常,但解释对我来说含糊不清。我是 JPA 的新手

谁能帮帮我。

附:我确实有 getter 和 setter

提前致谢。

【问题讨论】:

  • persistence.xml 中有什么内容?其他实体有效吗?

标签: java jpa eclipselink


【解决方案1】:

必须满足以下条件,JPA 提供者才能找到您的实体。

如果是 Web 应用程序(应用程序运行在应用程序服务器中),使用 @Entity 注释标记实体就足够了,并确保在您的 persistence.xml 中以下是 不设置:<exclude-unlisted-classes>true</exclude-unlisted-classes>

对于标准 Java SE 应用程序,您必须在 persistence.xml 或引用的 orm.xml 中列出您的类。

【讨论】:

    【解决方案2】:

    在课堂前添加@Entity注解,并为所有字段生成getter和setter...尝试寻找任何示例/教程。

    【讨论】:

    • 哦,我确实有那个注释,而且我有所有的 getter 和 setter。糟糕的是,我不想让问题太长,这就是我删除这些问题的原因。
    • 哦,好吧,您可以发布您的 persistence.xml 以获取更多信息吗?在任何情况下,您都在使用 Toplink(已过时)使用 EclipseLink,并在再次尝试运行您的应用程序之前删除所有表。
    • 我升级到最新的 Eclipse 链接 jar,它成功了。不过我很惊讶。这太奇怪了,因为其他实体工作得非常好。但是感谢您的帮助和解决方案。
    【解决方案3】:

    如果您尝试创建 POJO,然后将其与存储库一起保存,请确保您没有像这样创建 POJO:

    Student student = new Student() {{ setName(xxx);setAge(xxx); }};
    

    该语句会创建Student的匿名子类,子类没有@Entity注解,所以Hibernate无法识别。

    【讨论】:

      【解决方案4】:

      如果你没有在persistence.xml中添加orm.xml映射文件或者没有使用@Entity。

      <mapping-file>META-INF/orm.xml</mapping-file>
      

      然后在同一文件中添加以下标签或使用@Entity

      <exclude-unlisted-classes>false</exclude-unlisted-classes> 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多