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.
