Ich habe ein Problem, das ich nicht verstehen kann. In Hibernate habe ich kein Problem mit dem folgenden:EclipseLink und Sequence Generator Vorbelegung
@GeneratedValue(strategy = GenerationType.AUTO, generator = "email-seq-gen")
@SequenceGenerator(name="email-seq-gen", sequenceName="EMAIL_SEQ_GEN", allocationSize=500)
Da ist in meinem schema.ddl Ich habe dies:
CREATE SEQUENCE EMAIL_SEQ_GEN START 1 INCREMENT 500;
nicht viel zu sehen. Alles funktioniert wie erwartet. Allerdings, wenn ich meinen Provider zu Eclipse wechseln bekomme ich diesen Fehler:
The sequence named [EMAIL_SEQ_GEN] is setup incorrectly. Its increment does not match its pre-allocation size.
Also ich natürlich google um und sehe, etwas über Eclipse eine negative Zahl zu schaffen, wenn der Anfangswert 1 ist und dass es die allocationSize gleich.
Also, okay, das Hinzufügen so „Anfangswert = 500“ und meinen DDL-Skripte Update auf „START 500“ korrigiert diese Fehler, aber jetzt meine Nummerierung beginnt bei 500 statt 1. Was soll das? Ist das ein EclipseLink-Bug oder gibt es etwas, das ich nicht verstehe? Ich möchte Sequenzen erzeugen, die bei 1 beginnen und Zuweisungsgrößen haben, die auf die Entity abgestimmt sind (in diesem Fall 500). Wie würde ich das mit EclipseLink machen?
Danke!
CREATE SEQUENCE EMAIL_SEQ_GEN START 1 INCREMENT 500;
Was ist der richtige Weg, um meine Einheit zu annotieren es mit Eclipselink zu verwenden:
Ein anderer Weg, dies zu fragen ist .... diese DDL gegeben?
Wenn ich lasse Eclipse meine DDL erzeugt dann die:
@GeneratedValue(strategy = GenerationType.AUTO, generator = "email-seq-gen")
@SequenceGenerator(name="email-seq-gen", sequenceName="EMAIL_SEQ_GEN", initialValue=1, allocationSize=500)
Werden diese erzeugen:
CREATE SEQUENCE EMAIL_SEQ_GEN INCREMENT BY 500 START WITH 500;
Welche Art impliziert, dass es unmöglich ist, eine DDL mit einem „START MIT 1 zu erstellen "mit EclipseLink.
Wenn Sie die andere Richtung gehen (lassen Sie EclipseLink die DDL von Ihren Entitäten erzeugen), was erzeugt es? – DannyMo
Ich habe den ursprünglichen Post editiert, um die Antwort auf Ihre Frage hinzuzufügen. –