Skip to content

Conversation

@adikatre
Copy link
Contributor

@adikatre adikatre commented Jan 9, 2026

Also pairs with some minor changes to Groups UX on frontend.

Copilot AI review requested due to automatic review settings January 9, 2026 18:56
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This pull request adds initialization code for Groups example data in the ModelInit.java file. The changes populate the database with three sample groups representing different class periods and courses, each containing three member persons identified by hardcoded IDs.

Key Changes:

  • Added Groups and GroupsJpaRepository imports
  • Injected GroupsJpaRepository dependency
  • Added initialization logic for three sample groups with predefined members

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +519 to +537
personJpaRepository.findById(1L).ifPresent(p -> group1.getGroupMembers().add(p));
personJpaRepository.findById(2L).ifPresent(p -> group1.getGroupMembers().add(p));
personJpaRepository.findById(3L).ifPresent(p -> group1.getGroupMembers().add(p));
groupsJpaRepository.save(group1);

// Group 2: Period 2 CSA - members with IDs 4, 5, 6
Groups group2 = new Groups("Innovators", "2", "CSA", new ArrayList<>());
groupsJpaRepository.save(group2);
personJpaRepository.findById(4L).ifPresent(p -> group2.getGroupMembers().add(p));
personJpaRepository.findById(5L).ifPresent(p -> group2.getGroupMembers().add(p));
personJpaRepository.findById(6L).ifPresent(p -> group2.getGroupMembers().add(p));
groupsJpaRepository.save(group2);

// Group 3: Period 5 CSP - members with IDs 1, 4, 7
Groups group3 = new Groups("Explorers", "5", "CSP", new ArrayList<>());
groupsJpaRepository.save(group3);
personJpaRepository.findById(1L).ifPresent(p -> group3.getGroupMembers().add(p));
personJpaRepository.findById(4L).ifPresent(p -> group3.getGroupMembers().add(p));
personJpaRepository.findById(7L).ifPresent(p -> group3.getGroupMembers().add(p));
Copy link

Copilot AI Jan 9, 2026

Choose a reason for hiding this comment

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

Consider using the addPerson method provided by the Groups entity instead of directly manipulating the groupMembers list. The addPerson method properly maintains bidirectional relationships between Person and Groups entities, ensuring data consistency.

Suggested change
personJpaRepository.findById(1L).ifPresent(p -> group1.getGroupMembers().add(p));
personJpaRepository.findById(2L).ifPresent(p -> group1.getGroupMembers().add(p));
personJpaRepository.findById(3L).ifPresent(p -> group1.getGroupMembers().add(p));
groupsJpaRepository.save(group1);
// Group 2: Period 2 CSA - members with IDs 4, 5, 6
Groups group2 = new Groups("Innovators", "2", "CSA", new ArrayList<>());
groupsJpaRepository.save(group2);
personJpaRepository.findById(4L).ifPresent(p -> group2.getGroupMembers().add(p));
personJpaRepository.findById(5L).ifPresent(p -> group2.getGroupMembers().add(p));
personJpaRepository.findById(6L).ifPresent(p -> group2.getGroupMembers().add(p));
groupsJpaRepository.save(group2);
// Group 3: Period 5 CSP - members with IDs 1, 4, 7
Groups group3 = new Groups("Explorers", "5", "CSP", new ArrayList<>());
groupsJpaRepository.save(group3);
personJpaRepository.findById(1L).ifPresent(p -> group3.getGroupMembers().add(p));
personJpaRepository.findById(4L).ifPresent(p -> group3.getGroupMembers().add(p));
personJpaRepository.findById(7L).ifPresent(p -> group3.getGroupMembers().add(p));
personJpaRepository.findById(1L).ifPresent(p -> group1.addPerson(p));
personJpaRepository.findById(2L).ifPresent(p -> group1.addPerson(p));
personJpaRepository.findById(3L).ifPresent(p -> group1.addPerson(p));
groupsJpaRepository.save(group1);
// Group 2: Period 2 CSA - members with IDs 4, 5, 6
Groups group2 = new Groups("Innovators", "2", "CSA", new ArrayList<>());
groupsJpaRepository.save(group2);
personJpaRepository.findById(4L).ifPresent(p -> group2.addPerson(p));
personJpaRepository.findById(5L).ifPresent(p -> group2.addPerson(p));
personJpaRepository.findById(6L).ifPresent(p -> group2.addPerson(p));
groupsJpaRepository.save(group2);
// Group 3: Period 5 CSP - members with IDs 1, 4, 7
Groups group3 = new Groups("Explorers", "5", "CSP", new ArrayList<>());
groupsJpaRepository.save(group3);
personJpaRepository.findById(1L).ifPresent(p -> group3.addPerson(p));
personJpaRepository.findById(4L).ifPresent(p -> group3.addPerson(p));
personJpaRepository.findById(7L).ifPresent(p -> group3.addPerson(p));

Copilot uses AI. Check for mistakes.
Comment on lines +517 to +522
Groups group1 = new Groups("Pioneers", "1", "CSA", new ArrayList<>());
groupsJpaRepository.save(group1);
personJpaRepository.findById(1L).ifPresent(p -> group1.getGroupMembers().add(p));
personJpaRepository.findById(2L).ifPresent(p -> group1.getGroupMembers().add(p));
personJpaRepository.findById(3L).ifPresent(p -> group1.getGroupMembers().add(p));
groupsJpaRepository.save(group1);
Copy link

Copilot AI Jan 9, 2026

Choose a reason for hiding this comment

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

The group is being saved twice - once before adding members and once after. This is inefficient. Consider removing the first save operation and only saving after all members have been added to the group.

Copilot uses AI. Check for mistakes.
Comment on lines +525 to +530
Groups group2 = new Groups("Innovators", "2", "CSA", new ArrayList<>());
groupsJpaRepository.save(group2);
personJpaRepository.findById(4L).ifPresent(p -> group2.getGroupMembers().add(p));
personJpaRepository.findById(5L).ifPresent(p -> group2.getGroupMembers().add(p));
personJpaRepository.findById(6L).ifPresent(p -> group2.getGroupMembers().add(p));
groupsJpaRepository.save(group2);
Copy link

Copilot AI Jan 9, 2026

Choose a reason for hiding this comment

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

The group is being saved twice - once before adding members and once after. This is inefficient. Consider removing the first save operation and only saving after all members have been added to the group.

Copilot uses AI. Check for mistakes.
Comment on lines +533 to +538
Groups group3 = new Groups("Explorers", "5", "CSP", new ArrayList<>());
groupsJpaRepository.save(group3);
personJpaRepository.findById(1L).ifPresent(p -> group3.getGroupMembers().add(p));
personJpaRepository.findById(4L).ifPresent(p -> group3.getGroupMembers().add(p));
personJpaRepository.findById(7L).ifPresent(p -> group3.getGroupMembers().add(p));
groupsJpaRepository.save(group3);
Copy link

Copilot AI Jan 9, 2026

Choose a reason for hiding this comment

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

The group is being saved twice - once before adding members and once after. This is inefficient. Consider removing the first save operation and only saving after all members have been added to the group.

Copilot uses AI. Check for mistakes.
Comment on lines +519 to +537
personJpaRepository.findById(1L).ifPresent(p -> group1.getGroupMembers().add(p));
personJpaRepository.findById(2L).ifPresent(p -> group1.getGroupMembers().add(p));
personJpaRepository.findById(3L).ifPresent(p -> group1.getGroupMembers().add(p));
groupsJpaRepository.save(group1);

// Group 2: Period 2 CSA - members with IDs 4, 5, 6
Groups group2 = new Groups("Innovators", "2", "CSA", new ArrayList<>());
groupsJpaRepository.save(group2);
personJpaRepository.findById(4L).ifPresent(p -> group2.getGroupMembers().add(p));
personJpaRepository.findById(5L).ifPresent(p -> group2.getGroupMembers().add(p));
personJpaRepository.findById(6L).ifPresent(p -> group2.getGroupMembers().add(p));
groupsJpaRepository.save(group2);

// Group 3: Period 5 CSP - members with IDs 1, 4, 7
Groups group3 = new Groups("Explorers", "5", "CSP", new ArrayList<>());
groupsJpaRepository.save(group3);
personJpaRepository.findById(1L).ifPresent(p -> group3.getGroupMembers().add(p));
personJpaRepository.findById(4L).ifPresent(p -> group3.getGroupMembers().add(p));
personJpaRepository.findById(7L).ifPresent(p -> group3.getGroupMembers().add(p));
Copy link

Copilot AI Jan 9, 2026

Choose a reason for hiding this comment

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

Consider using the addPerson method provided by the Groups entity instead of directly manipulating the groupMembers list. The addPerson method properly maintains bidirectional relationships between Person and Groups entities, ensuring data consistency.

Suggested change
personJpaRepository.findById(1L).ifPresent(p -> group1.getGroupMembers().add(p));
personJpaRepository.findById(2L).ifPresent(p -> group1.getGroupMembers().add(p));
personJpaRepository.findById(3L).ifPresent(p -> group1.getGroupMembers().add(p));
groupsJpaRepository.save(group1);
// Group 2: Period 2 CSA - members with IDs 4, 5, 6
Groups group2 = new Groups("Innovators", "2", "CSA", new ArrayList<>());
groupsJpaRepository.save(group2);
personJpaRepository.findById(4L).ifPresent(p -> group2.getGroupMembers().add(p));
personJpaRepository.findById(5L).ifPresent(p -> group2.getGroupMembers().add(p));
personJpaRepository.findById(6L).ifPresent(p -> group2.getGroupMembers().add(p));
groupsJpaRepository.save(group2);
// Group 3: Period 5 CSP - members with IDs 1, 4, 7
Groups group3 = new Groups("Explorers", "5", "CSP", new ArrayList<>());
groupsJpaRepository.save(group3);
personJpaRepository.findById(1L).ifPresent(p -> group3.getGroupMembers().add(p));
personJpaRepository.findById(4L).ifPresent(p -> group3.getGroupMembers().add(p));
personJpaRepository.findById(7L).ifPresent(p -> group3.getGroupMembers().add(p));
personJpaRepository.findById(1L).ifPresent(p -> group1.addPerson(p));
personJpaRepository.findById(2L).ifPresent(p -> group1.addPerson(p));
personJpaRepository.findById(3L).ifPresent(p -> group1.addPerson(p));
groupsJpaRepository.save(group1);
// Group 2: Period 2 CSA - members with IDs 4, 5, 6
Groups group2 = new Groups("Innovators", "2", "CSA", new ArrayList<>());
groupsJpaRepository.save(group2);
personJpaRepository.findById(4L).ifPresent(p -> group2.addPerson(p));
personJpaRepository.findById(5L).ifPresent(p -> group2.addPerson(p));
personJpaRepository.findById(6L).ifPresent(p -> group2.addPerson(p));
groupsJpaRepository.save(group2);
// Group 3: Period 5 CSP - members with IDs 1, 4, 7
Groups group3 = new Groups("Explorers", "5", "CSP", new ArrayList<>());
groupsJpaRepository.save(group3);
personJpaRepository.findById(1L).ifPresent(p -> group3.addPerson(p));
personJpaRepository.findById(4L).ifPresent(p -> group3.addPerson(p));
personJpaRepository.findById(7L).ifPresent(p -> group3.addPerson(p));

Copilot uses AI. Check for mistakes.
Comment on lines +519 to +537
personJpaRepository.findById(1L).ifPresent(p -> group1.getGroupMembers().add(p));
personJpaRepository.findById(2L).ifPresent(p -> group1.getGroupMembers().add(p));
personJpaRepository.findById(3L).ifPresent(p -> group1.getGroupMembers().add(p));
groupsJpaRepository.save(group1);

// Group 2: Period 2 CSA - members with IDs 4, 5, 6
Groups group2 = new Groups("Innovators", "2", "CSA", new ArrayList<>());
groupsJpaRepository.save(group2);
personJpaRepository.findById(4L).ifPresent(p -> group2.getGroupMembers().add(p));
personJpaRepository.findById(5L).ifPresent(p -> group2.getGroupMembers().add(p));
personJpaRepository.findById(6L).ifPresent(p -> group2.getGroupMembers().add(p));
groupsJpaRepository.save(group2);

// Group 3: Period 5 CSP - members with IDs 1, 4, 7
Groups group3 = new Groups("Explorers", "5", "CSP", new ArrayList<>());
groupsJpaRepository.save(group3);
personJpaRepository.findById(1L).ifPresent(p -> group3.getGroupMembers().add(p));
personJpaRepository.findById(4L).ifPresent(p -> group3.getGroupMembers().add(p));
personJpaRepository.findById(7L).ifPresent(p -> group3.getGroupMembers().add(p));
Copy link

Copilot AI Jan 9, 2026

Choose a reason for hiding this comment

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

Consider using the addPerson method provided by the Groups entity instead of directly manipulating the groupMembers list. The addPerson method properly maintains bidirectional relationships between Person and Groups entities, ensuring data consistency.

Suggested change
personJpaRepository.findById(1L).ifPresent(p -> group1.getGroupMembers().add(p));
personJpaRepository.findById(2L).ifPresent(p -> group1.getGroupMembers().add(p));
personJpaRepository.findById(3L).ifPresent(p -> group1.getGroupMembers().add(p));
groupsJpaRepository.save(group1);
// Group 2: Period 2 CSA - members with IDs 4, 5, 6
Groups group2 = new Groups("Innovators", "2", "CSA", new ArrayList<>());
groupsJpaRepository.save(group2);
personJpaRepository.findById(4L).ifPresent(p -> group2.getGroupMembers().add(p));
personJpaRepository.findById(5L).ifPresent(p -> group2.getGroupMembers().add(p));
personJpaRepository.findById(6L).ifPresent(p -> group2.getGroupMembers().add(p));
groupsJpaRepository.save(group2);
// Group 3: Period 5 CSP - members with IDs 1, 4, 7
Groups group3 = new Groups("Explorers", "5", "CSP", new ArrayList<>());
groupsJpaRepository.save(group3);
personJpaRepository.findById(1L).ifPresent(p -> group3.getGroupMembers().add(p));
personJpaRepository.findById(4L).ifPresent(p -> group3.getGroupMembers().add(p));
personJpaRepository.findById(7L).ifPresent(p -> group3.getGroupMembers().add(p));
personJpaRepository.findById(1L).ifPresent(p -> group1.addPerson(p));
personJpaRepository.findById(2L).ifPresent(p -> group1.addPerson(p));
personJpaRepository.findById(3L).ifPresent(p -> group1.addPerson(p));
groupsJpaRepository.save(group1);
// Group 2: Period 2 CSA - members with IDs 4, 5, 6
Groups group2 = new Groups("Innovators", "2", "CSA", new ArrayList<>());
groupsJpaRepository.save(group2);
personJpaRepository.findById(4L).ifPresent(p -> group2.addPerson(p));
personJpaRepository.findById(5L).ifPresent(p -> group2.addPerson(p));
personJpaRepository.findById(6L).ifPresent(p -> group2.addPerson(p));
groupsJpaRepository.save(group2);
// Group 3: Period 5 CSP - members with IDs 1, 4, 7
Groups group3 = new Groups("Explorers", "5", "CSP", new ArrayList<>());
groupsJpaRepository.save(group3);
personJpaRepository.findById(1L).ifPresent(p -> group3.addPerson(p));
personJpaRepository.findById(4L).ifPresent(p -> group3.addPerson(p));
personJpaRepository.findById(7L).ifPresent(p -> group3.addPerson(p));

Copilot uses AI. Check for mistakes.
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