Skip to content

Conversation

@Kama-Pushka
Copy link
Owner

@Kama-Pushka Kama-Pushka commented Apr 19, 2025

Студент: Аптуликсанов Руслан Германович
Преподаватель: Никита Иванов

  • Создать контроллер, в котором:
    • 1. endpoint, который на вход будет принимать данные в виде и сохранять их в базу (createTodo):
    {
      "name": "Мой список дел",
      "events": ["дело1", "delo2", "delo3"]
    }
    
    • 2. endpoint, который будет отдавать данные из бд в виде (getAllTodo):
    [
      {
        "name": "Мой список дел",
        "events": ["дело1", "delo2", "delo3"]
      },
      {
        "name": "Мой список дел2",
        "events": ["дело1", "delo2", "delo3"]
      }
    ]
    
  • Спроектировать структуру БД для этих данных. В качестве БД можно взять любую БД. (Postgre с таблицами todo и автогенерируемой events)

изображение
изображение
изображение

private final TodoService todoService;

@GetMapping("/get")
public List<TodoDto> getAllTodo() {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TaskDto используется как для ответа, так и для запроса. В данном случае не принципиально, но лучше для ответа и запроса (даже если в разных методах используется) создавать свои ДТО

@NoArgsConstructor
@Entity
@Table(name = "todo")
public class TodoEntity {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

У всех entity необходимо переопределять hashCode и equalse методы


@Transactional(readOnly = true)
public List<TodoDto> findAll() {
return todoEntityRepository.findAll().stream()

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Получим проблему n+1, на каждый Task будет выполнен запрос на поиск events, хотя все это можно загрузить за один запрос

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants