gpt4 book ai didi

java createNamedQuery - 实体管理器和持久性

转载 作者:行者123 更新时间:2023-12-01 18:46:50 31 4
gpt4 key购买 nike

我在 java 中收到此错误消息。

你们中有人知道我该如何解决这个问题吗?

HTTP 状态 500 - 过滤器执行引发异常

输入异常报告

消息过滤器执行抛出异常

描述服务器遇到内部错误,无法满足此请求。

异常

javax.servlet.ServletException: Filter execution threw an exception
root cause

java.lang.Error: Unresolved compilation problem:
The method createNamedQuery(String) in the type EntityManager is not applicable for the arguments (String, Class<User>)

bg.tu_sofia.cinema.dao.UserDAOImpl.getAllUsers(UserDAOImpl.java:22)
bg.tu_sofia.cinema.dao.UserDAOImpl.usernameExists(UserDAOImpl.java:52)
bg.tu_sofia.cinema.filters.UserReconcilerFilter.doFilter(UserReconcilerFilter.java:54)
note The full stack trace of the root cause is available in the SAP logs.

userDOAImpl

package bg.tu_sofia.cinema.dao;

import java.util.List;

import javax.persistence.EntityManager;

import bg.tu_sofia.cinema.entities.Cinema;
import bg.tu_sofia.utils.EntityManagerUtils;

public class CinemaDAOImpl implements CinemaDAO {

private EntityManager em;
private EntityManagerUtils dbUtils;

public CinemaDAOImpl() {
this.dbUtils = EntityManagerUtils.getInstance();
this.em = dbUtils.getEntityManagerInstance();
}

public List<Cinema> getAllCinemas() {
return em.createNamedQuery("AllCinemas", Cinema.class).getResultList();
}

public Cinema getCinemaByID(long id) {
return em.find(Cinema.class, id);
}

public void addCinema(Cinema cinema) {
dbUtils.startTransaction(em);
em.persist(cinema);
dbUtils.commitTransaction(em);
}

public void removeCinema(Cinema cinema) {
//TODO : don't forget when removing a cinema to remove all its related screenings.
dbUtils.startTransaction(em);
em.remove(cinema);
dbUtils.commitTransaction(em);
}

public void removeCinemaByID(long removalID) {
removeCinema(getCinemaByID(removalID));
}

}

最佳答案

正在使用的实现似乎是 JPA 1 实现。如documented具有此签名的方法

TypedQuery createNamedQuery(String name, Class resultClass)

在 JPA 2.0 中引入。可能的解决方案是:

  1. 升级到 JPA 2.0 实现或
  2. 使用 createNamedQuery(java.lang.String name) 代替并转换结果。

关于java createNamedQuery - 实体管理器和持久性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17384699/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com