JPA - EntityNotFoundException,但DB数据存在

时间:2017-04-11 07:27:55

标签: java spring hibernate spring-data-jpa

我有简单的“类别”表,有4条记录:

ID  NAME
1   phones
2   tablets
3   notebooks
4   tvs

域类:

package com.rest.domain;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="categories")
public class Category {

    @Id 
    @GeneratedValue
    private Long id;

    private String name;

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

以下简单的JPA存储库:

    public interface CategoryRepository extends CrudRepository<Category, Long> {

    }

现在,当我尝试

categoryRepository.findOne(4)

我收到了EntityNotFoundException:

  

2017-04-11 10:19:28.898 ERROR 16700 --- [nio-8080-exec-1] oaccC [。[。[/]。[dispatcherServlet]:servlet的[Servlet.service()[dispatcherServlet]在path []的上下文中抛出异常[请求处理失败;嵌套异常是org.springframework.orm.jpa.JpaObjectRetrievalFailureException:无法找到id为4的com.rest.domain.Category;嵌套异常是javax.persistence.EntityNotFoundException:无法找到带有根本原因的id为4的com.rest.domain.Category

但是,数据存在于DB中。

可能是RC之前我已经删除了与我的Category实体有@ManyToOne关系的父实体,我猜它会被标记为从entityManager删除:

productRepository.delete(productId);

我该怎么办?我需要以某种方式冲洗吗?

1 个答案:

答案 0 :(得分:-1)

确保你的xml hibernate属性配置中的hibernate.hbm2ddl.auto = update

<prop key="hibernate.hbm2ddl.auto">update</prop>