即使恢复为以前工作的代码,JPA EntityManager也不再查找实体

时间:2018-05-03 02:33:12

标签: java maven jpa glassfish entitymanager

我正在使用Glassfish,Jersey和MySQL数据库创建服务器

我的EntityManager曾经工作过但现在没有

以下是一个简单方法的示例,该方法曾经有效,但现在却没有

@GET
@Path("movie/{id}")
@JSONP
@Produces({"application/javascript", MediaType.APPLICATION_JSON})
public Movie getMovie(@PathParam("id") int id) {
    EntityManager em = (EntityManager) context.getAttribute("em");
    Movie requestedMovie = em.find(Movie.class, id);
    return requestedMovie;
}

现在返回java.lang.IllegalArgumentException: Unknown Entity bean class: class data.entry.Movie, please verify that this class has been marked with the @Entity annotation.

奇怪的是,即使我使用git将代码转回到我知道它曾经工作的提交时,它仍然会这样做。

此外,该代码仍适用于我的队友的笔记本电脑。

当我尝试将注释添加到另一个类并尝试测试它时,问题就开始了。此错误开始出现。然后我将代码转回到以前的提交以撤消我的更改,但我仍然收到错误。

我尝试多次重启我的笔记本电脑也无济于事。

知道什么可能导致实体经理停止找到实体吗?

2 个答案:

答案 0 :(得分:0)

请尝试删除构建的文件。 它主要与IDE缓存/构建缓存有关。

  

Unknown Entity bean class:class data.entry.Movie,请验证此类是否已使用@Entity注释进行标记。

请检查一下。

答案 1 :(得分:0)

通过卸载/重新安装glassfish来解决问题