Wir haben eine Anwendung, die seit Jahren funktioniert, und wir verwenden auch die gleiche Oracle-Datenbank. Aber migrierte unsere Datenbank von einem Host zu einem anderen Host.Eindeutige Einschränkung verletzt - Debug
DB: ORACLE
Jetzt ganz plötzlich wir folgende Ausnahme erhalten,
“org.springframework.dao.DataIntegrityViolationException: ORA-00001: unique constraint (YYY.XXX_LOG_PK) violated;
SQL [n/a]; constraint [YYY.XXX_LOG_PK]; nested exception is org.hibernate.exception.ConstraintViolationException: ORA-00001: unique constraint (YYY.XXX_LOG_PK) violated”
Code:
@SequenceGenerator(name = "TT_SEQUENCE_GENERATOR", sequenceName = "YYY.XXX_LOG_SEQ")
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "TT_SEQUENCE_GENERATOR")
@Column(name = "ID")
public Long getId() {
return this.id;
}
Sequenz in DB:
CREATED 07-NOV-17
LAST_DDL_TIME 07-NOV-17
SEQUENCE_OWNER TT
SEQUENCE_NAME YYY.XXX_LOG_SEQ
MIN_VALUE 1
MAX_VALUE 999999999999999999999999999
INCREMENT_BY 1
CYCLE_FLAG N
ORDER_FLAG N
CACHE_SIZE 0
LAST_NUMBER 75305
Problem : Wenn wir versuchen, einen Datensatz durch JPA-Code einzufügen, erhalten wir die obige Ausnahme, aber wenn ich versuche, einige Datensätze mit sequence.nextval in die DB einzufügen, gibt es keine Ausnahme.
Gibt es sowieso ich kann debuggen, um herauszufinden, was die Ausnahme wäre? Ich habe auch versucht, show_sql - ich konnte nicht die Lösung mit diesem auch zu finden, da dies nicht die nächste Sequenznummer in der Konsole
drucken Bitte zeigen Sie mich in die richtige Richtung, wenn Sie die Lösung kennen.
Dass der Fehler nicht bei unformatierten Einfügungen auf Ihrer Oracle-Datenbank auftritt, macht dieses Problem noch heimtückischer. Besteht die Möglichkeit, dass Hibernate hinter den Kulissen eine oder mehrere Junction-Tabellen erstellt und dass der Fehler tatsächlich auftritt? –
Ich glaube nicht, dass es eine Chance gibt, Hibernate mehrere Male aufzurufen .... Aber der richtige Punkt, ich werde es überprüfen, indem Sie show_sql platzieren. – abc