Ich habe eine Tabelle wie folgt definiert:aktualisieren UniqueConstrains auf einer JPA Tabelle
@Entity
@Table(
uniqueConstraints = {@UniqueConstraint(columnNames = {"reward_id", "transaction_id"})}
)
public class ShipmentItem extends Model {
...
}
Ich möchte die eindeutige Einschränkung ändern es entspannter zu machen:
@Entity
@Table(
uniqueConstraints = {@UniqueConstraint(columnNames = {"reward_id", "transaction_id", "sku"})}
)
public class ShipmentItem extends Model {
...
}
Der aktualisierte Code kompiliert, aber JPA ändert das Tabellenschema nicht. Gibt es eine Konfigurationseinstellung, die ich verwenden muss?
Wenn JPA dies nicht tun können, was ist der systematische Ansatz für dieses Problem? Ich kann eine Migration schreiben, JPA generiert jedoch automatisch den Namen für die Abhängigkeit, daher ist es nicht offensichtlich, wie die alte Einschränkung aufgehoben wird.
Nicht sicher, ob es wichtig ist, aber ich bin mit Hibernate und MySQL.
Sie konnten nicht auf JPA verlassen, um die Tabellen für Sie erstellen und eine Lösung verwenden, wie [flyway] (https://flywaydb.org/), wo Sie alle Änderungen werden sich. – hakamairi
Ich stimme mit Blazej überein. Wenn Sie eine Datenbank wie PostgreSQL verwenden, können Sie außerdem die Einschränkung DEFERRABLE erstellen, mit der Sie Constraints aktualisieren können, aber die DB führt die referenzielle Prüfung erst am Ende der Transaktion durch. – sagneta