Tôi gặp vấn đề mà tôi không thể xoay sở được. Trong chế độ ngủ đông Tôi không có vấn đề với những điều sau đây:EclipseLink và Prencelocation Sequence Generator
@GeneratedValue(strategy = GenerationType.AUTO, generator = "email-seq-gen")
@SequenceGenerator(name="email-seq-gen", sequenceName="EMAIL_SEQ_GEN", allocationSize=500)
Sau đó, trong schema.ddl của tôi, tôi có điều này:
CREATE SEQUENCE EMAIL_SEQ_GEN START 1 INCREMENT 500;
Không có nhiều để xem ở đây. Mọi thứ hoạt động như mong đợi. Tuy nhiên, nếu tôi chuyển sang nhà cung cấp của tôi để EclipseLink tôi nhận được lỗi này:
The sequence named [EMAIL_SEQ_GEN] is setup incorrectly. Its increment does not match its pre-allocation size.
Vì vậy, tất nhiên tôi google xung quanh và thấy một cái gì đó về EclipseLink tạo ra một số âm nếu giá trị ban đầu là 1 và rằng nó phải bằng các allocationSize.
Vì vậy, được rồi, vì vậy hãy thêm "initialValue = 500" và cập nhật tập lệnh DDL của tôi thành "START 500", nhưng bây giờ số của tôi bắt đầu ở mức 500 thay vì 1. Số cho? Đây có phải là lỗi EclipseLink hay không có điều gì đó mà tôi không hiểu. Tôi muốn tạo các chuỗi bắt đầu từ 1 và có kích thước phân bổ được điều chỉnh theo thực thể (trong trường hợp này là 500). Làm thế nào tôi sẽ làm điều đó với EclipseLink?
Cảm ơn!
Một cách khác để hỏi này .... cho DDL này:
CREATE SEQUENCE EMAIL_SEQ_GEN START 1 INCREMENT 500;
cách chính xác để chú thích thực thể của tôi để sử dụng nó với EclipseLink là gì?
Nếu tôi để EclipseLink tạo DDL của tôi thì đây:
@GeneratedValue(strategy = GenerationType.AUTO, generator = "email-seq-gen")
@SequenceGenerator(name="email-seq-gen", sequenceName="EMAIL_SEQ_GEN", initialValue=1, allocationSize=500)
sẽ tạo ra điều này:
CREATE SEQUENCE EMAIL_SEQ_GEN INCREMENT BY 500 START WITH 500;
Những loại ngụ ý rằng nó là không thể để tạo ra một DDL với một "BẮT ĐẦU VỚI 1 "bằng cách sử dụng EclipseLink.
Nếu bạn đi theo hướng khác (hãy để EclipseLink tạo DDL từ các thực thể của bạn) nó tạo ra cái gì? – DannyMo
Tôi đã chỉnh sửa bài đăng gốc để thêm câu trả lời cho câu hỏi của bạn. –