2016-07-27 10 views
0

Ich mache das so.Was fehlt mir in meinem @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; 

Jetzt, wenn ich versuche, eine Entität persistieren, habe ich.

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

, was in meinem @TableGenerator entging ich Elemente?

Die Tabelle existiert und ich sehe es funktioniert, wenn ich die Zeile manuell einfügen. Ist das normal?

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

Gibt es eine standardmäßige (herstellerunabhängige) Eigenschaft, um dies automatisch zu tun?

Antwort

1

Manchmal passiert es, wenn Sie persistence.xml ändern. Überprüfen Sie, ob in Ihrer Persistenzeinheit der Wert von "eclipselink.ddl-generation" auf "create-tables" gesetzt ist.

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