Spring Boot One-to-Many ilişkisi

Merhabalar,







Spring Boot kullanarak bir "One-to-Many" ilişkiye sahip bir uygulama oluşturmak için aşağıdaki adımları takip edebilirsiniz. Bu örnekte, bir "Kategori" ve bu kategorilere ait birden çok "Ürün" arasında bir ilişki oluşturulacak.

Adım 1: Spring Boot Projesi Oluşturun Spring Initializer veya IDE'niz aracılığıyla bir Spring Boot projesi oluşturun. Bağımlılıklar olarak "Spring Web", "Spring Data JPA" ve "H2 Database" gibi uygun bağımlılıkları eklemeyi unutmayın.

Adım 2: Veritabanı Modelini Tanımlayın Veritabanı tablolarını temsil edecek iki sınıf oluşturun: "Category" ve "Product". Bu sınıflar arasında "One-to-Many" ilişkiyi tanımlayın.

Category.java:

import javax.persistence.*;
import java.util.List;

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

    @OneToMany(mappedBy = "category", cascade = CascadeType.ALL)
    private List<Product> products;

    // Getter ve Setter metotlarını ekleyin
}

Product.java:

import javax.persistence.*;

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

    @ManyToOne
    @JoinColumn(name = "category_id")
    private Category category;

    // Getter ve Setter metotlarını ekleyin
}

Adım 3: Repository Sınıflarını Oluşturun Her iki sınıf için de JPA repository sınıflarını oluşturun.

CategoryRepository.java:

import org.springframework.data.jpa.repository.JpaRepository;

public interface CategoryRepository extends JpaRepository<Category, Long> {
}

ProductRepository.java:

import org.springframework.data.jpa.repository.JpaRepository;

public interface ProductRepository extends JpaRepository<Product, Long> {
}

Adım 4: Controller Sınıflarını Oluşturun Kategori ve ürünle ilgili işlemleri gerçekleştirecek controller sınıflarını oluşturun.

CategoryController.java:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/categories")
public class CategoryController {
    @Autowired
    private CategoryRepository categoryRepository;

    @GetMapping
    public List<Category> getAllCategories() {
        return categoryRepository.findAll();
    }

    // Diğer işlemler için gerekli endpoint'leri ekleyin
}

ProductController.java:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/products")
public class ProductController {
    @Autowired
    private ProductRepository productRepository;

    @GetMapping
    public List<Product> getAllProducts() {
        return productRepository.findAll();
    }

    // Diğer işlemler için gerekli endpoint'leri ekleyin
}

Adım 5: Uygulamayı Çalıştırın Uygulamanızı çalıştırın. Ardından, "/categories" ve "/products" endpoint'leri aracılığıyla kategorileri ve ürünleri oluşturabilir, görüntüleyebilir, güncelleyebilir ve silebilirsiniz.

Bu adımları izleyerek Spring Boot ile "One-to-Many" ilişkiye sahip bir uygulama oluşturabilirsiniz. İlgili endpoint'leri ve işlemleri uygulamanıza ekleyerek uygulamanızı daha da geliştirebilirsiniz.