我的映射如下。Hibernate繼承問題。使用錯誤序列的子類
這裏是所有類的基類。這個班沒有桌子。所有的子類用戶ID都是他們的PK。
@MappedSuperclass
public abstract class Model {
private Long id;
@Id
@GeneratedValue(strategy=GenerationType.Sequence, generator="myGenerator")
public Long getId() { return id; }
}
在模型A類註釋,有它自己的表,以列的所有字段
@Entity
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
@Table(name = "COMMENT")
@SequenceGenerator(name="myGenerator", sequenceName="COMMENT_SEQ", allocationSize=1)
public class Comment extends Model {
//some data
}
評論的子類,也有自己的表,用在所有領域的列評論和模型
@Entity
@Table(name = "ORDER_COMMENT")
@SequenceGenerator(name="myGenerator", sequenceName="ORDER_COMMENT_SEQ", allocationSize=1)
public class OrderComment extends Model {
//some data
}
這個類有它自己的表,可以有一個到多個訂單註釋。
@Entity
@Table(name="ORDER")
@SequenceGenerator(name="myGenerator", sequenceName="ORDER_SEQ", allocationSize=1)
public class Order extends Model {
private Set<OrderComment> = new HashSet<OrderComment>();
@OneToMany
@JoinColumn(name="ORDER_ID")
public Set<OrderComment> getComments() { return comments; }
}
的問題是,當我添加一個新OrderComment到訂單,休眠選擇從徵詢意見,而不是爲OrderComment序列的序列編號。
任何想法,爲什麼發生這種情況,我可以改變以解決這個問題?或者有更好的方法來映射這個?
但奇怪的是,我有一個與先前版本的hibernate(3.3.1)完全相同的序列定義,並且它工作正常。休眠3.6x不喜歡它。我在想它會覆蓋超類的順序。 – 2011-03-17 20:48:55