我们在Oracle数据库上使用HibernateAnnotations3.4.0GA和HibernateCore3.3.2.GA(也称为当前稳定版本)
我们有一个base=1的一对多映射,它在很长一段时间内运行良好,但是上周我们在数据库中发现了一些条目,其中索引列包含值0,这导致了各种问题。
所以我的问题是:有没有人知道一对多关系的索引列中有一个0的值,当它被一个基=1映射时?可能与泛型或mapped超类的使用有关。
// SuperClass of the One side
@MappedSuperclass
public abstract class AbstractReihung<Tp, Tw, Te extends AbstractReihungElement<Tp, Tw>>
{
@OneToMany(cascade = CascadeType.ALL)
@Cascade(
{
org.hibernate.annotations.CascadeType.ALL,
org.hibernate.annotations.CascadeType.DELETE_ORPHAN
})
@JoinColumn(name = "parent_id", nullable = false)
@IndexColumn(name = "position", base = 1, nullable = false)
private List<Te> elements = new ArrayList<Te>();
}
// Super Class of the Many side
@MappedSuperclass
public abstract class AbstractReihungElement<Tp, Tw> extends AbstractDbObject
{
@ManyToOne
@JoinColumn(name = "parent_id", insertable = false, updatable = false, nullable = false)
private Tp parent;
@Column(name = "position", insertable = false, updatable = false, nullable = false)
private int position;
}