我正在使用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将代码转回到我知道它曾经工作的提交时,它仍然会这样做。
此外,该代码仍适用于我的队友的笔记本电脑。
当我尝试将注释添加到另一个类并尝试测试它时,问题就开始了。此错误开始出现。然后我将代码转回到以前的提交以撤消我的更改,但我仍然收到错误。
我尝试多次重启我的笔记本电脑也无济于事。
知道什么可能导致实体经理停止找到实体吗?
答案 0 :(得分:0)
请尝试删除构建的文件。 它主要与IDE缓存/构建缓存有关。
Unknown Entity bean class:class data.entry.Movie,请验证此类是否已使用@Entity注释进行标记。
请检查一下。
答案 1 :(得分:0)
通过卸载/重新安装glassfish来解决问题