One-to-One, One-to-Many, এবং Many-to-Many Relationship Mapping

Spring ORM এ Entity Mapping - স্প্রিং ওআরএম (Spring ORM) - Java Technologies

363

স্প্রিং ওআরএম ব্যবহার করে Java Persistence API (JPA) এবং Hibernate এর মাধ্যমে ডাটাবেসে সম্পর্ক (Relationships) মডেল করা সম্ভব। এখানে One-to-One, One-to-Many, এবং Many-to-Many সম্পর্ক ব্যাখ্যা করা হলো।


One-to-One Relationship

একটি টেবিলের একটি রেকর্ড আরেকটি টেবিলের মাত্র একটি রেকর্ডের সাথে সম্পর্কিত হলে এটি One-to-One সম্পর্ক।

উদাহরণ

প্রতিটি ব্যবহারকারীর (User) একটি অ্যাড্রেস (Address) থাকতে পারে।

Entity ক্লাস

import jakarta.persistence.*;

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

    private String name;

    @OneToOne(cascade = CascadeType.ALL)
    @JoinColumn(name = "address_id", referencedColumnName = "id")
    private Address address;

    // Getters and Setters
}

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

    private String street;
    private String city;

    // Getters and Setters
}

Key Points:

  • @OneToOne: সম্পর্ক নির্দেশ করে।
  • @JoinColumn: address_id কলাম দিয়ে দুটি টেবিল লিঙ্ক করে।

One-to-Many Relationship

একটি টেবিলের একটি রেকর্ড আরেকটি টেবিলের একাধিক রেকর্ডের সাথে সম্পর্কিত হলে এটি One-to-Many সম্পর্ক।

উদাহরণ

একটি ক্যাটেগরির (Category) একাধিক প্রোডাক্ট (Product) থাকতে পারে।

Entity ক্লাস

import jakarta.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;

    // Getters and Setters
}

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

    private String name;

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

    // Getters and Setters
}

Key Points:

  • @OneToMany: একাধিক সম্পর্ক নির্দেশ করে।
  • @ManyToOne: বিপরীত সম্পর্ক নির্দেশ করে।
  • mappedBy: মূল সম্পর্কের ফিল্ডের নাম দেখায়।

Many-to-Many Relationship

দুটি টেবিলের একাধিক রেকর্ড একে অপরের সাথে সম্পর্কিত হলে এটি Many-to-Many সম্পর্ক।

উদাহরণ

একটি শিক্ষার্থী (Student) একাধিক কোর্স (Course) নিতে পারে এবং একটি কোর্সে একাধিক শিক্ষার্থী থাকতে পারে।

Entity ক্লাস

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

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

    private String name;

    @ManyToMany
    @JoinTable(
        name = "student_course",
        joinColumns = @JoinColumn(name = "student_id"),
        inverseJoinColumns = @JoinColumn(name = "course_id")
    )
    private List<Course> courses;

    // Getters and Setters
}

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

    private String title;

    @ManyToMany(mappedBy = "courses")
    private List<Student> students;

    // Getters and Setters
}

Key Points:

  • @ManyToMany: সম্পর্ক নির্দেশ করে।
  • @JoinTable: মধ্যবর্তী টেবিলের নাম এবং কলাম নির্ধারণ করে।
  • inverseJoinColumns: বিপরীত দিকের টেবিলের কলাম নির্ধারণ করে।

সারাংশ

  • One-to-One: দুই টেবিলের একটি রেকর্ড একটি রেকর্ডের সাথে সম্পর্কিত।
  • One-to-Many: একটি রেকর্ড একাধিক রেকর্ডের সাথে সম্পর্কিত।
  • Many-to-Many: দুই টেবিলের একাধিক রেকর্ড একে অপরের সাথে সম্পর্কিত।

এই সম্পর্কগুলো স্প্রিং ওআরএম এবং Hibernate এর মাধ্যমে ডেটাবেস মডেলিং সহজ করে।

Content added By
Promotion

Are you sure to start over?

Loading...