Ограничения, добавленные в результате миграции, не работают при обновлении с помощью CrudRepository.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Ограничения, добавленные в результате миграции, не работают при обновлении с помощью CrudRepository.

Сообщение Anonymous »

Когда я запускаю приложение Spring Boot (для некоторых тестов используется база данных H2, но проблема может быть более общей), я запускаю несколько сценариев миграции, создающих ограничения:

Код: Выделить всё

CREATE TABLE student (id INT NOT NULL,name VARCHAR(20));
CREATE TABLE friends (id INT NOT NULL, studentId1 INT NOT NULL, studentId2 INT NOT NULL);

ALTER TABLE FRIENDS
ADD FOREIGN KEY (studentId1)
REFERENCES student(ID );

ALTER TABLE FRIENDS
ADD FOREIGN KEY (studentId2)
REFERENCES student(ID);
Затем добавляются элементы с использованием Spring JPA Repository и Entity, определенных следующим образом:

Код: Выделить всё

@Entity
@Table(name = "friends")
public class FriendsEntity {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;

public Long getId() {
return id;
}

private Long studentId1;
private Long studentId2;
....//
}
Добавление выполняется вызовом friendsRepository.save(entityToSave); где friendsRepository расширяет CrudRepository
При добавлении элементов таким способом кажется, что ограничения не работают (я могу добавлять элементы с несуществующими идентификаторами учащихся). Означает ли это, что при использовании CrudRepository ограничения, добавленные сценариями миграции при запуске, игнорируются/удаляются?

Подробнее здесь: https://stackoverflow.com/questions/792 ... repository
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»