sql >> Database >  >> RDS >> Oracle

Slaapstand, id, orakel, reeks

Ik had ook een project met een Oracle DB die de gegevens aan mijn @Entity-klassen levert. Zoals je zei, genereert een sequentie de id voor de PK van de tafel via een trigger. Dit waren de annotaties die ik in een van deze lessen gebruikte:

@Id
@GeneratedValue(strategy = GenerationType.AUTO, generator = "G1")
@SequenceGenerator(name = "G1", sequenceName = "LOG_SEQ")
@Column(name = "ID", unique = true, nullable = false, precision = 22, scale = 0)
public int getId() {
    return this.id;
}

Dit is de tweede syntaxis die je in je bericht hebt laten zien. Er is geen aanroep naar de trigger in de Java-code omdat de trigger wordt beheerd door de DB. Ik herinner me dat ik de sequentie en de trigger tegelijkertijd in de DB moest hebben als ik geen problemen wilde hebben. De trigger vroeg of de id van de in te voegen rij null of =0 is. In dit geval wordt de reeks LOG_SEQ aangeroepen.

Dus als u een waarde opgeeft aan de @Id van uw entiteit, kan deze in de DB worden ingevoegd (als die Id niet bestaat) en wordt de reeks niet aangeroepen. Probeer de code van de trigger te zien om precies te zien wat er gebeurt.




  1. Heeft u problemen met het crashen van MS Access? Probeer eerst deze oplossingen

  2. Hoe kan ik dubbele rijen verwijderen?

  3. Kan DLL "OraOps10.dll" niet laden

  4. t-sql select krijg alle maanden binnen een reeks van jaren