我正在将电影添加到基础MovieEntity类中,然后再添加一个继承自MovieOtherEnity的标题MovieInfoEntity类
MovieInfoEntity
具有MovieEntity
的外键。 MovieEntity
包含从MovieInfoEntity
类继承的实体列表。
我有一个测试,在每次测试之后,清除对象的底部。
/**
* Clean out the db after every test.
*/
@After
public void cleanup() {
this.contributionRepository.deleteAll();
this.messageRepository.deleteAll();
this.movieRepository.deleteAll(); // here he throws an exception
this.movieInfoRepository.deleteAll();
this.userRepository.deleteAll();
}
上面代码中标记的行被扔掉了
org.springframework.orm.ObjectRetrievalFailureException: Object [id=1] was not of the specified subclass [com.jonki.popcorn.core.jpa.entity.movie.MovieBoxOfficeEntity] : loaded object was of wrong class class com.jonki.popcorn.core.jpa.entity.movie.MovieOtherTitleEntity; nested exception is org.hibernate.WrongClassException: Object [id=1] was not of the specified subclass [com.jonki.popcorn.core.jpa.entity.movie.MovieBoxOfficeEntity] : loaded object was of wrong class class com.jonki.popcorn.core.jpa.entity.movie.MovieOtherTitleEntity
我将提到它会测试该方法,在其中我将Object MovieOtherTitle项目添加到MovieEntity对象的列表中。
答案 0 :(得分:0)
似乎不同表之间的id具有相同的值,因此,当hibernate尝试加载具有特定id的实体,并且如果内存中已经存在另一个具有相同id的实体时,hibernate就会抱怨此问题。
答案 1 :(得分:0)
确保在数据库中,您没有在discriminator列中没有定义值的条目(可能是手动输入),或者该列中的值不是您任何实体的DiscriminatorValue。这只会影响检索,但不会保存。