Spring Boot Many-to-Many ilişkisi

Merhabalar,


 





Spring Boot kullanarak birçok-çok ilişki (many-to-many relationship) örneği oluşturmak için öncelikle bir veritabanı modeli ve bu modeli kullanacak bir Spring Boot uygulaması oluşturmanız gerekecektir. Bu örnekte, birçok öğrencinin birçok kursa kaydolabileceği bir öğrenci-kurs ilişkisi örneği kullanacağım.

Aşağıda, Spring Boot ile birçok-çok ilişki örneğini adım adım nasıl oluşturabileceğinizi gösteren basit bir örnek bulunmaktadır.

Adım 1: Spring Boot Projesi Oluşturma Spring Initializer veya Spring Boot CLI kullanarak yeni bir Spring Boot projesi oluşturun. Bu projede veritabanı erişimi için JPA kullanacağız. Ayrıca Web bağımlılığı eklemeyi unutmayın.

Adım 2: Veritabanı Modelini Oluşturma Veritabanı modelini oluşturmak için iki temel sınıf oluşturmanız gerekecektir: Student (Öğrenci) ve Course (Kurs). Bu sınıflar arasında birçok-çok ilişki kuracağız.

@Entity
public class Student {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;

    @ManyToMany(fetch = FetchType.LAZY)
    @JoinTable(name = "student_courses",
            joinColumns = @JoinColumn(name = "student_id"),
            inverseJoinColumns = @JoinColumn(name = "course_id"))
    private Set<Course> courses = new HashSet<>();

    // Getter ve Setter metotları
}

@Entity
public class Course {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    private String name;

    @ManyToMany(mappedBy = "courses")
    private Set<Student> students = new HashSet<>();

    // Getter ve Setter metotları
}

Yukarıdaki kodda, Student sınıfı ile Course sınıfı arasında birçok-çok ilişki oluşturulmuştur.

Adım 3: Repository Sınıflarını Oluşturma Her iki sınıf için de JpaRepository'leri oluşturmanız gerekecektir.

public interface StudentRepository extends JpaRepository<Student, Long> {
}

public interface CourseRepository extends JpaRepository<Course, Long> {
}

Adım 4: Servis Katmanını Oluşturma Servis sınıfları, iş mantığını uygulayacak ve Repository sınıflarını kullanacaktır.

@Service
public class StudentService {
    @Autowired
    private StudentRepository studentRepository;

    // Öğrenci işlemleri için metotlar
}

@Service
public class CourseService {
    @Autowired
    private CourseRepository courseRepository;

    // Kurs işlemleri için metotlar
}

Adım 5: Controller Katmanını Oluşturma Controller sınıfları, HTTP isteklerini yönlendirmek için kullanılır.

@RestController
@RequestMapping("/students")
public class StudentController {
    @Autowired
    private StudentService studentService;

    // Öğrenci ile ilgili HTTP istekleri için metotlar
}

@RestController
@RequestMapping("/courses")
public class CourseController {
    @Autowired
    private CourseService courseService;

    // Kurs ile ilgili HTTP istekleri için metotlar
}

Adım 6: Uygulamanızı Çalıştırma Uygulamanızı çalıştırın ve HTTP istekleri ile öğrencileri ve kursları oluşturun, ilişkilendirin, güncelleyin veya silin.

Bu adımları takip ederek, Spring Boot ile birçok-çok ilişki örneği oluşturabilirsiniz. Uygulamanızı geliştirmeye devam edebilir ve iş mantığınıza uygun olarak genişletebilirsiniz.