Kimliğin, eşlenmiş bir üst sınıfta tanımlanması durumunda, her bir tablo için ayrı dizileri belirtmenin bir yolu var mı? Bizim uygulamadaAlt sınıflarda Hazırda Bekleme alt tablosundaki tablo başına ayrı sıralama belirtme
Tüm varlıklar bir üst sınıf böyle DataObject
denilen uzatmak:
@MappedSuperclass
public abstract class DataObject implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE)
@Column(name = "id")
private int id;
}
@Entity
@Table(name = "entity_a")
public class EntityA extends DataObject { ... }
@Entity
@Table(name = "entity_b")
public class EntityB extends DataObject { ... }
Bu paylaşılan bir diziyi, varsayılan hibernate_sequence
kullanmak için tüm varlıkları neden olur.
Yapmak istediğim, yukarıdaki örnekte entity_a_sequence
ve entity_b_sequence
gibi her varlık için ayrı bir sıra kullanmaktır. Alt sınıflarda kimlik belirtildiyse, her varlık için bir sıra belirtmek üzere @SequenceGenerator
ek açıklamasını kullanabilirdim, ancak bu durumda kimlik üst sınıftadır. Kimliğin üst sınıfta olduğu göz önüne alındığında, her varlık için ayrı bir sıra kullanabileceğim bir yol var mıdır - ve eğer öyleyse, nasıl?
Evet - işe yarıyor! Ben benzer bir şey denedim ama "org.hibernate.AnnotationException: Bilinmeyen Id.generator: idgen" almaya devam etti. Ancak kodunuz iyi çalıştı; ilk denememde alt sınıflardan birinde '@ SequenceGenerator 'eklemeyi unuttuğum ortaya çıkıyor. Bu yüzden cevap, her varlık alt sınıfının üzerinde @SequenceGenerator ek açıklamasına sahip olduğu sürece işe yarayacağıdır. – gutch