arasında paylaşılan Bir @id ile 'köpek' kiflili¤i ve @TableGeneratorJPA @TableGenerator birden kuruluşlar
...
@TableGenerator(table = "seq", name = "dog_gen", pkColumnName = "seq_name", valueColumnName="seq_val")
@Id @GeneratedValue(strategy = GenerationType.TABLE, generator = "dog_gen")
private Long id;
...
Diğer taraf olan aynı tablo jeneratör (dog_gen) yeniden bir yolu var mı var? Ben, iki bağımsız varlıkları aynı id dizisini kalmasını istiyor
köpek = 1, köpek = 2, köpek = 3, kedi = 4, kedi = 5, köpek = 6 ve benzeri ...
Her iki varlık da, id özelliği ile bir çeşit miras uygulamak için ortak bir üst sınıf paylaşmaz.
Ben @TableGenerator beyanı atlayarak, kedimin varlık üzerinde @GeneratedValue (jeneratör = "dog_gen") eklerseniz bağlamı başlatırken o jeneratör bulamıyorum diyerek bir özel durum atar.
Caused by: org.hibernate.AnnotationException: Unknown Id.generator: dog_gen
at org.hibernate.cfg.BinderHelper.makeIdGenerator(BinderHelper.java:413)
at org.hibernate.cfg.AnnotationBinder.bindId(AnnotationBinder.java:1795)
at org.hibernate.cfg.AnnotationBinder.processElementAnnotations(AnnotationBinder.java:1229)
at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:733)
at org.hibernate.cfg.AnnotationConfiguration.processArtifactsOfType(AnnotationConfiguration.java:498)
at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:277)
Ben denedim ... tek işe GÖRÜNÜYOR aslında ayrı jeneratörler ans ayrı ayrı oluşturulur. 1'den büyük bir ayırma boyutu seçerseniz, her varlık için farklı kimlik aralıklarınızın olacağını görürsünüz. (Hibernate 3.6'yı kullanarak burada, belki 4.x ile daha iyi çalışır?) –