2017-09-15 4 views
0

Die Umwelt wird eingefügt:Hiberate JPA - Sequenzen negativ wird, wenn Aufzeichnung

Database - Oracle 12c 
Hibernate - 5.2.10Final 
JPA - version 2.0 

entityManager.merge Wir verwenden das Objekt einzufügen. Der Wert der Sequenz ist ein positiver Wert, aber wenn er in db eingefügt wird, wird er negativ. Scheint nicht die Ursache dafür zu finden.

Hier wird die Hibernate setzen wir für unsere Entitätsobjekt id-Attribut-Feld haben, mit der Sequenz

@Id 
@SequenceGenerator(name = "someSequence", sequenceName = "SOME_SEQUENCE") 
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "someSequence") 
@Column(name = "RECORD_ID", unique = true, nullable = false, precision = 10, scale = 0) 
private String recordId; 

jemand Einstellung kann helfen? Vielen Dank.

Antwort

1

In SequenceGenerator Annotation gibt es eine Variable mit dem Namen allocationSize. Diese Größe ist standardmäßig 50. Das bedeutet, dass Hibernate 50 IDs reserviert und keine neue ID für jede Einfügung abgerufen werden muss. Sie müssen also:

  • gesetzt allocationSize auf den gleichen Wert wie in Ihrem someSequence incrementBy Wert.
  • oder InkrementBy Wert auf Ihrem someSequence, um allocationSize Wert zu entsprechen.

Dann werden Sie Probleme gehen.

Verwandte Themen