[英]Is there a change between Hibernate 4.3.x and 4.2.x in how they hydrate abstract implemented classes
我們最近從Hibernate 4.2.12升級到4.3.5,並且在升級后,由於以下錯誤,抽象類開始失敗:
Request processing failed; nested exception is javax.persistence.EntityNotFoundException: Unable to find com.siftit.domain.core.user.User with id 138
用戶實際上已經存在,並且就像我說的那樣在4.2.12中有效,但是一旦我們升級到4.3.5,它就會失敗,但是如果我們將用戶更改為特定類型(即SomeUser),則get可以正常工作。
我們正在使用:
春季:4.0.3.RELEASE
春季數據:1.5.1.RELEASE
JPA:1.2
@MappedSuperclass
public class AbstractEntity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id", nullable = false)
protected Long id;
}
@Entity
@Table(name = "user")
@Inheritance(strategy= InheritanceType.JOINED)
public abstract class User extends AbstractEntity {
}
@Entity
@Table(name="someUser")
public class SomeUser extends User {
}
@Entity
@Table(name="someClass")
public class SomeClass extends AbstractEntity {
@ManyToOne
User user;
public User getUser(){ return user;} //This is really a restaurant user that should fill this and if we map it as a restaurant user, everything works, but if we keep it mapped as user it fails.
}
從4.2.7升級到4.3.5時遇到了同樣的問題。 使用InheritanceType.SINGLE_TABLE
而不是InheritanceType.JOINED
為我解決了此問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.