Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.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

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 未知实体bean类_Java_Jpa - Fatal编程技术网

Java 未知实体bean类

Java 未知实体bean类,java,jpa,Java,Jpa,我有这么一个小问题。当我运行下面的代码时,它会给我一条错误消息: 线程“main”java.lang.IllegalArgumentException中出现异常:未知实体bean类:class com.dke.ps.Items.Item,请验证该类是否已用@entity注释标记。 位于org.eclipse.persistence.internal.jpa.EntityManagerImpl.find(EntityManagerImpl.java:707) 位于org.eclipse.persi

我有这么一个小问题。当我运行下面的代码时,它会给我一条错误消息:

线程“main”java.lang.IllegalArgumentException中出现异常:未知实体bean类:class com.dke.ps.Items.Item,请验证该类是否已用@entity注释标记。 位于org.eclipse.persistence.internal.jpa.EntityManagerImpl.find(EntityManagerImpl.java:707) 位于org.eclipse.persistence.internal.jpa.EntityManagerImpl.find(EntityManagerImpl.java:588) 位于com.dke.ps.Server.Server.main(Server.java:121)

以下是我的代码:

package com.dke.ps.Server;

import static com.dke.ps.Constants.Constants.*;
import com.dke.ps.Items.Item;
import com.dke.ps.Items.Potion;
import com.dke.ps.Items.Weapon;
import com.dke.ps.Items.Armor;
import java.util.ArrayList;
import java.sql.*;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public class Server
{

    public Server()
    {
        /*
        Inicializace serveru.
        - login informace pro server jsou připravené v konstantách v balíčku Constants ;)
        */
    }

    public boolean login(String username, String password)
    {
        /*
        Ověření loginu.
        - vrací TRUE pokud je username a password správné
        - jinak vrací FALSE
        */ 
        return true;
    }

    public String getSaveGame(User user)
    {
        String saveData = "";
        /*
        Stáhne ze serveru uloženou pozici.
        */
        return saveData;
    }

    public void uploadSaveGame(String saveData)
    {
        /*
        Nahraje na server uloženou pozici.
        */
    }

    public ArrayList<Weapon> getDbWeapons()
    {
        ArrayList<Weapon> dbWeapons = new ArrayList<>();
        /*
        Stáhne všechny zbraně ze serveru a vrátí je jako ArrayList.
        Nezapomeň při vkládání doplnit parametr Item.type!

        */
        return dbWeapons;
    }

    public ArrayList<Armor> getDbArmors()
    {
        ArrayList<Armor> dbArmors = new ArrayList<>();
        /*
        Stáhne všechny zbroje ze serveru a vrátí je jako ArrayList.
        Nezapomeň při vkládání doplnit parametr Item.type!

        */
        return dbArmors;
    }

    public ArrayList<Potion> getDbPotions()
    {
        ArrayList<Potion> dbPotions = new ArrayList<>();
        /*
        Stáhne všechny zbroje ze serveru a vrátí je jako ArrayList.
        Nezapomeň při vkládání doplnit parametr Item.type!
        */
        return dbPotions;
    }

    public ArrayList<Item> getDbItems()
    {
        ArrayList<Item> dbItems = new ArrayList<>();
        /*
        Volá metody:
            getDbWeapons();
            getDbArmors();
            getDbPotions();
        A jejich obsah sloučí do jednoho listu, který vrátí.
        */
        return dbItems;
    }

    public ArrayList<Integer> getPurchasedItems(User user)
    {
        ArrayList<Integer> listOfPurchasedItems = new ArrayList<>();
        /*
        Vrátí seznam předmětů zakoupených uživatelem User (je-li přihlášení validní)
        viz getter user.isLoginOk().
        */
        return listOfPurchasedItems;
    }

    public boolean purchaseItem(User user, int itemId)
    {
        /*
        Zapíše nákup předmětu do databáze.
        - vrací TRUE byl-li zápis úspěšný
        - jinak FALSE.
        */
        return true;
    }

    public static void main(String[] args) {
    EntityManagerFactory emf = Persistence.createEntityManagerFactory("com.dke_project-sheogorath_jar_0.1aPU");
    EntityManager em = emf.createEntityManager();

     Item item = em.find(Item.class, 1);

      System.out.println(" ID = " + item.getItemid());
      System.out.println(" NAME = " + item.getName());
      System.out.println(" Description = " + item.getDescription());
      System.out.println(" getType = " + item.getType());
   }
}
我不知道问题出在哪里。我只想创建类内服务器main方法来测试我的数据库下载表是否正常

这是我的persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
  <persistence-unit name="com.dke_project-sheogorath_jar_0.1aPU" transaction-type="RESOURCE_LOCAL">
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
    <properties>
      <property name="javax.persistence.jdbc.url" value="jdbc:postgresql://slon.felk.cvut.cz:5432/db17_koresmi1"/>
      <property name="javax.persistence.jdbc.user" value="db17_koresmi1"/>
      <property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver"/>
      <property name="javax.persistence.jdbc.password" value="databaze_dbs"/>
      <property name="javax.persistence.schema-generation.database.action" value="create"/>
    </properties>
  </persistence-unit>
</persistence>

org.eclipse.persistence.jpa.PersistenceProvider
你能帮帮我吗


谢谢

给我们看看你的persistence.xml文件。看看这里:我刚刚编辑了我的问题,它没有列出你的实体。在
标记中添加
com.dke.ps.Items.Item
添加
com.dke.ps.Items.Item
,以便指定显式管理的持久性类。
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
  <persistence-unit name="com.dke_project-sheogorath_jar_0.1aPU" transaction-type="RESOURCE_LOCAL">
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
    <properties>
      <property name="javax.persistence.jdbc.url" value="jdbc:postgresql://slon.felk.cvut.cz:5432/db17_koresmi1"/>
      <property name="javax.persistence.jdbc.user" value="db17_koresmi1"/>
      <property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver"/>
      <property name="javax.persistence.jdbc.password" value="databaze_dbs"/>
      <property name="javax.persistence.schema-generation.database.action" value="create"/>
    </properties>
  </persistence-unit>
</persistence>