2016-07-27 49 views
0

我正在這樣做。我在@TableGenerator中缺少什麼?

@Basic(optional = false) 
@Column(name = "ID", nullable = false, updatable = false) 
@Id 
@GeneratedValue(generator = "GLOBAL", 
       strategy = GenerationType.TABLE) 
@TableGenerator(
     allocationSize = 1048576, 
     initialValue = Integer.MAX_VALUE, 
     pkColumnName = "PK", 
     valueColumnName = "VL", 
     table = "GENERATED_ID", 
     name = "GLOBAL", 
     pkColumnValue = "GLOBAL" 
) 
@NotNull 
@XmlAttribute 
private Long id; 

現在,當我試圖堅持一個實體,我得到了。

Exception Description: Error preallocating sequence numbers. 
The sequence table information is not complete. 

我在@TableGenerator中錯過了什麼元素?

該表存在,我看到它工作時,我手動插入行。這是正常的嗎?

INSERT INTO GENERATED_ID ("PK", "VL") VALUES ("GLOBAL", 1); 

是否有自動執行此操作的任何標準(供應商中立)屬性?

回答

1

有時會發生在更改persistence.xml時。檢查您的持久性單元中是否將「eclipselink.ddl-generation」 的值設置爲「create-tables」。

<property name="eclipselink.ddl-generation" value="create-tables" />