我有以下实体:JPA 2个Inheritance.TABLE_PER_CLASS与抽象的关系
@Entity
public class Owner{
@Id
@Column(name = "OWNER_ID")
@OneToMany()
@JoinColumn(name = "OWNER_ID")
private Set<Parent> parents;
...
}
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public class Parent{
@Id
@Column(name = "PARENT_ID")
...
}
@Entity
public class ChildA extends Parent{
...
}
@Entity
public class ChildB extends Parent{
...
}
}
的问题是,我得到下面的异常,当我试图坚持一个业主与父元素:
org.springframework.dao.InvalidDataAccessResourceUsageException:无法插入集合:[sample.Owner.parents#1]; SQL [更新父集OWNER_ID =? PARENT_ID =?]; org.springframework.dao.InvalidDataAccessResourceUsageException:无法插入集合:[sample.Owner.parents#1]; SQL [更新父集OWNER_ID =? PARENT_ID =?];嵌套异常是org.hibernate.exception.SQLGrammarException:无法插入集合: [sample.Owner.parents#1]嵌套异常是org.hibernate.exception.SQLGrammarException:无法插入集合:[sample.Owner.parents#1 ]
如果我将InheritanceType更改为JOINED,它工作正常。任何想法为什么它试图坚持父抽象类而不是孩子特定的?
非常感谢你,你真的拿到了尚方宝剑。 – domgom 2012-04-09 13:38:16