Ошибка JPA QuerySyntaxException: проигрыватель не сопоставлен [SELECT p FROM Player p] - PullRequest
0 голосов
/ 19 марта 2019

Я пытаюсь использовать JPA для выполнения простого запроса get внутри микропрофилей затмения, таким образом:

Класс игрока:

@Entity
@Table(name = "player")
public class Player {...

Основной класс:

@ApplicationScoped
@Path("/hello2")
public class HelloWorld extends Application {





    @Path("/players")
    @GET
    public List<Player> getPlayers() {
        EntityManager entityManager = Persistence.createEntityManagerFactory("testMicroProfile").createEntityManager();
        EntityTransaction transaction = entityManager.getTransaction();
        List<Player> list  = null;
        transaction.begin();
        TypedQuery<Player> query = entityManager.createQuery("SELECT p FROM Player p", Player.class);
        list = query.getResultList();
        transaction.commit();
        return list;
    }


}

И это файл 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="testMicroProfile" transaction-type="RESOURCE_LOCAL">
        <properties>
            <property name="javax.persistence.jdbc.url" value="jdbc:postgresql://localhost:5432/microprofiledb"/>
            <property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver"/>
            <property name="javax.persistence.jdbc.user" value="user"/>
            <property name="javax.persistence.jdbc.password" value="psw"/>
        </properties>
    </persistence-unit>
</persistence>

Имя таблицы в базе данных - player, но я прочитал в другом ответе на stackoverflow, что мне пришлось использовать имякласса внутри запроса, поэтому я изменил его в «Player», но все равно не работает.Чего не хватает?

1 Ответ

0 голосов
/ 27 апреля 2019

Попробуйте добавить свой класс сущности в persistence.xml :

<persistence-unit name="testMicroProfile">
    <class>my.test.Player</class>
...