2016-07-23 13 views
2

Ich kann nicht herausfinden, wie der Anfangswert für die @GenerateValue@Id festgelegt wird.Wie wird der Anfangswert für @Id @GeneratedValue in Spring JPA für MySQL festgelegt?

Ich habe versucht mit GenerationType.SEQUENCE, aber das ist nicht erlaubt in MySQL. Wie kann ich den Anfangswert für die @GenerateValue festlegen?

Mit beiden AUTO und TABLE Ich kann immer noch nicht den Anfangswert bekommen, etwas zu beginnen, aber 1

Danke

-Code mit AUTO

@Entity 
@Data 
@SequenceGenerator(name = "port_gen", sequenceName = "port_gen", initialValue = 4700) 
public class AppiumPort { 

    @Id 
    @GeneratedValue(strategy = GenerationType.AUTO, generator = "port_gen") 
    private Long port; 

    public AppiumPort() { 

    } 
} 

Code-Tabelle mit

@Entity 
    @Data 
    public class AppiumPort { 

    @TableGenerator(name = "Address_Gen", table = "ID_GEN", pkColumnName = "GEN_NAME", valueColumnName = "GEN_VAL", pkColumnValue = "Addr_Gen", initialValue = 10000, allocationSize = 100) 
    @Id 
    @GeneratedValue(strategy = GenerationType.TABLE, generator = "Address_Gen") 
    private int port; 

    public AppiumPort() { 

    } 
} 

** UPDATE **

Das Problem wurde im Zusammenhang mit nicht hibernate.id.new_generator_mappings = true;

https://docs.jboss.org/hibernate/stable/annotations/reference/en/html/ch01.html

Application.properties für Sring Boot:

spring.jpa.properties.hibernate.id.new_generator_mappings=true 
+0

, wenn Sie Setup db selbst, können Sie es in Ihrer MySQL-Datenbank tun könnte, wenn es nicht mit JPA/ORM generiert wird, es ist nur Mapping, ohne tatsächlich Erstellen von db. – Sarief

+0

Ich habe versucht mit dem Tabellengenerator auf der MySQL-Datenbank und es funktioniert perfekt. Aber ich habe den Frühling nicht benutzt. – ujulu

Antwort

1

Sie könnten versuchen, und verwenden Sie die @TableGenerator (JPA hat eine @TableGenerator Anmerkung, in dem Sie einen Anfangswert eingestellt werden). Der Anfangswert verwendet werden kann, um die Werte

Beispiel Samen hier: http://www.java2s.com/Code/Java/JPA/SetInitialValueOfTableGenerator.htm

+0

Überprüfen Sie oben Ich versuchte auch TABLE ohne Erfolg. Es beginnt bei 1, obwohl ich den Anfangswert festlege. – ALM

+0

In diesem Fall ist das ein Fehler in Ihrem JPA-Anbieter, also sollten Sie ihnen davon erzählen –