我遇到JPA
时遇到问题。我们有一个数据库,其中并非所有外键都是一致的,因此我们使用@NotFound(Ignore)
,请参阅下面的代码。但有时它会引发例外情况:
javax.persistence.EntityNotFoundException:无法找到 com.kiga.s3.mainmain.S3Image,ID为0
仅当外键为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;
}
}
生成S3Image ID,与
没有连接@Entity
public class S3Image{
@Id
@Column(name = "ID")
@GeneratedValue
private Long id;
@Column(name = "URL")
private String url;
}
的问候, 彼得
答案 0 :(得分:0)
你可以确认你没有多次访问包含给定实体的循环中的实体吗?
我怀疑Hibernate的内部缓存可能与它有关。
问候, 赖