Java JPA/Hibernate@NotFound忽略ID=0时不工作

Java JPA/Hibernate@NotFound忽略ID=0时不工作,java,spring,hibernate,jpa,Java,Spring,Hibernate,Jpa,我在JPA方面遇到了问题。我们有一个并非所有外键都一致的数据库,因此我们使用@NotFound(Ignore),请参见下面的代码。但有时它会抛出如下异常: javax.persistence.EntityNotFoundException:无法找到 id为0的com.kiga.s3.domain.S3Image 只有当外键为0(如果在数据库中将id更改为9999999)时,才会发生这种情况。是什么导致了这种行为?我需要做什么来修复它 这是我们的实体代码 import org.hibernate.

我在JPA方面遇到了问题。我们有一个并非所有外键都一致的数据库,因此我们使用
@NotFound(Ignore)
,请参见下面的代码。但有时它会抛出如下异常:

javax.persistence.EntityNotFoundException:无法找到 id为0的com.kiga.s3.domain.S3Image

只有当外键为
0
(如果在数据库中将id更改为
9999999
)时,才会发生这种情况。是什么导致了这种行为?我需要做什么来修复它

这是我们的实体代码

import org.hibernate.annotations.NotFound;
import org.hibernate.annotations.NotFoundAction;
@Entity
    public class KigaPageImage extends KigaEntityModel {
      @Column(name = "name")
      private String title;
      private String locale;
      private Long imageId;

      @ManyToOne
      @JoinColumn(name = "kigaPageID", referencedColumnName = "id")
      @NotFound(action = NotFoundAction.IGNORE)
      private KigaPage kigaPage;

      @ManyToOne
      @JoinColumn(name = "s3ImageID", referencedColumnName = "id")
      @NotFound(action = NotFoundAction.IGNORE)
      private S3Image s3Image;

      public S3Image getS3Image() {
        return s3Image;
      }

      public void setS3Image(S3Image s3Image) {
        this.s3Image = s3Image;
      }
    }
S3图像ID生成,未连接到

@Entity
public class S3Image{
  @Id
  @Column(name = "ID")
  @GeneratedValue
  private Long id;

  @Column(name = "URL")
  private String url;
}
问候,,
Peter

能否确认您没有多次访问包含给定实体的循环中的实体

我怀疑Hibernate的内部缓存可能与此有关

您好,
雷纳

@NotFound(不管是什么)与JPA无关。也许要弄清楚它在哪个包中。Yeah NotFound和NotFoundAction都是hibernate,我在代码段中添加了导入,请提供实体“S3Image”。它有一个id生成吗?如果是这样,在大多数SQL Server上,自动增量功能从1开始。。。因此id=0将不存在。如果你将id=0的S3Image持久化,它将被解释为“count up to next available id”。索引为0的数据库条目已经存在于数据库中,我没有将它们持久化为Javal。你使用的是什么hibernate版本?