【发布时间】:2020-10-07 12:34:11
【问题描述】:
我们如何防止在 hibernate 中创建外键? 我需要在我的“oneToMany”关系中插入一些尚不存在的孩子。 Hibernate 应该忽略孩子还不存在的事实。
目前,一旦我尝试插入那些不存在的子项,我就会收到一个外键异常。所以我需要禁用外键创建/使用。
@Entity
@Table(name = "chunk", uniqueConstraints = {@UniqueConstraint(columnNames={"x", "y"})}, indexes = {@Index(columnList = "x,y")})
@Access(value = AccessType.FIELD)
@SelectBeforeUpdate(false)
public class Chunk extends HibernateComponent{
public int x;
public int y;
public Date createdOn;
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@Fetch(FetchMode.JOIN)
@BatchSize(size = 50)
public Set<Identity> inChunk = new LinkedHashSet<>();
@Transient
public Set<ChunkLoader> loadedBy = new LinkedHashSet<>();
public Chunk() {}
public Chunk(int x, int y, Date createdOn) {
this.x = x;
this.y = y;
this.createdOn = createdOn;
}
}
我们如何做到这一点?
【问题讨论】:
标签: java hibernate jpa hibernate-mapping