|
8 | 8 |
|
9 | 9 | 1. **Зачисление студента на курс** |
10 | 10 |
|
11 | | - **Сценарий**: В качестве администратора университета вам необходимо зачислить студента на курс. Это действие должно быть гладким и гарантировать целостность данных, даже если происходит несколько зачислений одновременно или возникают проблемы с базой данных. |
| 11 | + **Сценарий**: В качестве администратора университета вам необходимо зачислить студента на курс. Это действие должно быть не должно вызвать проблем и гарантировать целостность данных, даже если происходит несколько зачислений одновременно или возникают проблемы с базой данных. |
12 | 12 |
|
13 | | - **Реализация метода `enrollStudentInCourse`**: Создайте метод для зачисления студента на курс. Обеспечьте, чтобы этот процесс был транзакционным, что означает, что это как единый пакетный процесс, гарантирующий, что все происходит правильно вместе. Мы используем `Propagation.REQUIRED`, чтобы убедиться, что этот метод участвует в любой существующей транзакции или создает новую, если таковой не существует. Кроме того, мы устанавливаем `Isolation.SERIALIZABLE`, чтобы гарантировать, что даже если есть параллельные транзакции, они не взаимодействуют друг с другом, сохраняя целостность данных. |
| 13 | + **Реализация метода `enrollStudentInCourse`**: Создайте метод для зачисления студента на курс. Обеспечьте, чтобы этот процесс был транзакционным, что означает, что это как единый пакетный процесс, гарантирующий, что весь процесс единый. Мы используем `Propagation.REQUIRED`, чтобы убедиться, что этот метод участвует в любой существующей транзакции или создает новую, если таковой не существует. Кроме того, мы устанавливаем `Isolation.SERIALIZABLE`, чтобы гарантировать, что даже если есть параллельные транзакции, они не мешают друг другу, сохраняя целостность данных. |
14 | 14 |
|
15 | 15 | ```java |
16 | 16 | @Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.SERIALIZABLE) |
|
21 | 21 |
|
22 | 22 | 2. **Получение списка студентов для курса** |
23 | 23 |
|
24 | | - **Сценарий**: Чтобы создать список группы для курса, вам необходимо получить список студентов, которые зачислены на него. Эта операция должна гарантировать, что вы всегда получаете точное представление базы данных, даже если происходят другие действия одновременно. |
| 24 | + **Сценарий**: Чтобы создать список группы для курса, вам необходимо получить список студентов, которые зачислены на него. Эта операция должна гарантировать, что вы всегда получаете точные данные базы данных, даже если происходят другие действия одновременно. |
25 | 25 |
|
26 | 26 | **Реализация метода `getStudentsForCourse`**: Разработайте метод для извлечения студентов для определенного курса. Он должен гарантировать, что данные, которые вы извлекаете, согласованы, независимо от любых текущих транзакций. Мы используем `Propagation.REQUIRED`, чтобы убедиться, что этот метод участвует в любой существующей транзакции или создает новую, если таковая не существует. Мы устанавливаем `Isolation.READ_COMMITTED`, чтобы гарантировать, что данные, которые мы извлекаем, зафиксированы и видны другим транзакциям, поддерживая последовательность. |
27 | 27 |
|
|
34 | 34 |
|
35 | 35 | 3. **Добавление нового курса** |
36 | 36 |
|
37 | | - **Сценарий**: Новый курс готовится к введению в учебный план. При добавлении его в систему вы хотите убедиться, что это действие не мешает ничему другому, происходящему в системе, сохраняя свою независимость. |
| 37 | + **Сценарий**: Новый курс готовится к новому учебному году. При добавлении нового курса в систему вы хотите убедиться, что это действие не мешает ничему другому, происходящему в системе, сохраняя свою независимость. |
38 | 38 |
|
39 | 39 | **Реализация метода `addNewCourse`**: Создайте метод для добавления нового курса в систему. Убедитесь, что этот процесс не запутывается с другими текущими транзакциями. Мы используем `Propagation.NOT_SUPPORTED`, чтобы убедиться, что этот метод не участвует в какой-либо текущей транзакции, обеспечивая его автономность и избегая потенциальных конфликтов с другими операциями. |
40 | 40 |
|
|
0 commit comments