Java JPA/Hibernate@NotFound忽略ID=0时不工作
我在JPA方面遇到了问题。我们有一个并非所有外键都一致的数据库,因此我们使用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.
@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版本?