Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 对象:不是已知的实体类型。日食_Java_Jpa_Eclipselink - Fatal编程技术网

Java 对象:不是已知的实体类型。日食

Java 对象:不是已知的实体类型。日食,java,jpa,eclipselink,Java,Jpa,Eclipselink,我对eclipselink或jpa是新手。我在跟随一个来自《日食》的教程。当我运行Test.java类时,出现以下异常。我正在通过网络使用oracle数据库。请帮帮我 [EL Info]: connection: 2016-09-14 15:13:33.562--ServerSession(271944754)--/file:/D:/Developer/EclipseLink/bin/_TestPersistence login successful [EL Warning]: metamode

我对eclipselink或jpa是新手。我在跟随一个来自《日食》的教程。当我运行Test.java类时,出现以下异常。我正在通过网络使用oracle数据库。请帮帮我

[EL Info]: connection: 2016-09-14 15:13:33.562--ServerSession(271944754)--/file:/D:/Developer/EclipseLink/bin/_TestPersistence login successful
[EL Warning]: metamodel: 2016-09-14 15:13:33.577--The collection of metamodel types is empty. Model classes may not have been found during entity search for Java SE and some Java EE container managed persistence units.  Please verify that your entity classes are referenced in persistence.xml using either <class> elements or a global <exclude-unlisted-classes>false</exclude-unlisted-classes> element
Exception in thread "main" java.lang.IllegalArgumentException: Object: Employee [name=Mukesh, email=m@gmail.com , department=Finance] is not a known Entity type.
    at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.registerNewObjectForPersist(UnitOfWorkImpl.java:4226)
    at org.eclipse.persistence.internal.jpa.EntityManagerImpl.persist(EntityManagerImpl.java:507)
    at com.assignment.Test.main(Test.java:28)
Test.java

package com.assignment;
public class Employee {
        private Long id;
        private String name;
        private String email;
        private String department;

        public Long getId() {
            return id;
        }
        public void setId(Long id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getEmail() {
            return email;
        }
        public void setEmail(String email) {
            this.email = email;
        }
        public String getDepartment() {
            return department;
        }
        public void setDepartment(String department) {
            this.department = department;
        }
        public String toString() {
            return "Employee [name=" + name + ", email=" + email + " , department="
                    + department + "]";
        }
}
package com.assignment;

import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;

public class Test {
    private static final String PERSISTENCE_UNIT_NAME = "TestPersistence";
      private static EntityManagerFactory factory;
      public static void main(String[] args) {
        factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
        EntityManager em = factory.createEntityManager();
        em.getTransaction().begin();
        Employee emp = new Employee();
        emp.setName("Mukesh");
        emp.setEmail("m@gmail.com");
        emp.setDepartment("Finance");
        em.persist(emp);
        em.getTransaction().commit();
        em.close();
      }
    }
包结构


尝试使用
javax.persistence.Entity
注释来表示
Employee

EclipseLink使用的更多信息和示例:
为类提供@Entity注释。您可能还需要一个主键Id,为其中一个属性指定@Id

package com.assignment;

import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class Employee {
        @Id
        private Long id;
        private String name;
        private String email;
        private String department;

        public Long getId() {
            return id;
        }
        public void setId(Long id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getEmail() {
            return email;
        }
        public void setEmail(String email) {
            this.email = email;
        }
        public String getDepartment() {
            return department;
        }
        public void setDepartment(String department) {
            this.department = department;
        }
        public String toString() {
            return "Employee [name=" + name + ", email=" + email + " , department="
                    + department + "]";
        }
}

这不是网站所寻找的答案,这充其量只是一条评论,而且很糟糕,它基本上也是一个“只有链接的答案”,当链接消失时,这是非常无用的。
package com.assignment;

import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class Employee {
        @Id
        private Long id;
        private String name;
        private String email;
        private String department;

        public Long getId() {
            return id;
        }
        public void setId(Long id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getEmail() {
            return email;
        }
        public void setEmail(String email) {
            this.email = email;
        }
        public String getDepartment() {
            return department;
        }
        public void setDepartment(String department) {
            this.department = department;
        }
        public String toString() {
            return "Employee [name=" + name + ", email=" + email + " , department="
                    + department + "]";
        }
}