@Entity, @Table, @Id এবং @Column অ্যানোটেশন এর ব্যবহার

Entity এবং Table Mapping - স্প্রিং বুট ওআরএম (Spring Boot ORM) - Java Technologies

258

স্প্রিং বুটে ORM (Object Relational Mapping) ব্যবহার করার সময় JPA অ্যানোটেশনগুলো জাভা ক্লাস এবং ডাটাবেস টেবিলের মধ্যে ম্যাপিং নিশ্চিত করে। নিচে @Entity, @Table, @Id এবং @Column অ্যানোটেশনের ব্যবহার এবং তাদের কার্যকারিতা বিস্তারিতভাবে দেখানো হলো।


@Entity অ্যানোটেশন

  • @Entity অ্যানোটেশনটি একটি জাভা ক্লাসকে JPA এ একটি ডাটাবেস টেবিলের প্রতিনিধিত্ব করতে নির্দেশ করে।
  • এটি একটি Persistence Entity হিসেবে কাজ করে।

উদাহরণ:

import jakarta.persistence.Entity;

@Entity
public class Employee {
    private Long id;
    private String name;
    private String department;
}

@Table অ্যানোটেশন

  • @Table অ্যানোটেশনটি @Entity অ্যানোটেশনের সঙ্গে ব্যবহার করা হয় এবং ডাটাবেস টেবিলের নাম স্পেসিফাই করে।
  • এটি ঐচ্ছিক, এবং যদি না দেওয়া হয়, JPA ক্লাসের নামকেই টেবিল নাম হিসেবে ধরে।

উদাহরণ:

import jakarta.persistence.Entity;
import jakarta.persistence.Table;

@Entity
@Table(name = "employees") // টেবিলের নাম স্পেসিফাই করা
public class Employee {
    private Long id;
    private String name;
    private String department;
}

@Id অ্যানোটেশন

  • @Id অ্যানোটেশনটি একটি ফিল্ডকে টেবিলের প্রাইমারি কী (Primary Key) হিসেবে চিহ্নিত করে।
  • এটি প্রতিটি টেবিলে আবশ্যক।

উদাহরণ:

import jakarta.persistence.Entity;
import jakarta.persistence.Id;

@Entity
public class Employee {
    @Id
    private Long id;
    private String name;
    private String department;
}

@Column অ্যানোটেশন

  • @Column অ্যানোটেশনটি একটি ফিল্ডকে ডাটাবেসের কলামের সঙ্গে ম্যাপ করে।
  • এটি ঐচ্ছিক, এবং না দিলে ডিফল্টভাবে ফিল্ডের নামকে কলামের নাম হিসেবে ধরে।
  • @Column ব্যবহার করে কলামের নাম, দৈর্ঘ্য (length), nullability ইত্যাদি নির্ধারণ করা যায়।

উদাহরণ:

import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;

@Entity
public class Employee {
    @Id
    private Long id;

    @Column(name = "employee_name", length = 100, nullable = false)
    private String name;

    @Column(name = "employee_department")
    private String department;
}

সম্পূর্ণ উদাহরণ

import jakarta.persistence.Entity;
import jakarta.persistence.Table;
import jakarta.persistence.Id;
import jakarta.persistence.Column;

@Entity
@Table(name = "employees")
public class Employee {
    @Id
    private Long id;

    @Column(name = "employee_name", length = 100, nullable = false)
    private String name;

    @Column(name = "employee_department")
    private String department;

    // Getter এবং Setter
    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDepartment() {
        return department;
    }

    public void setDepartment(String department) {
        this.department = department;
    }
}

ব্যাখ্যা

  1. @Entity: Employee ক্লাসটিকে JPA Entity হিসেবে চিহ্নিত করে।
  2. @Table: এই ক্লাসটি ডাটাবেসের employees টেবিলের প্রতিনিধিত্ব করে।
  3. @Id: id ফিল্ডটি প্রাইমারি কী হিসেবে ব্যবহৃত।
  4. @Column: name এবং department ফিল্ডগুলোকে ডাটাবেসের নির্দিষ্ট কলামের সঙ্গে ম্যাপ করা হয়েছে।

সারাংশ

স্প্রিং বুট ORM-এ @Entity, @Table, @Id এবং @Column অ্যানোটেশন ডাটাবেস টেবিল এবং জাভা অবজেক্টের মধ্যে ম্যাপিং সহজ করে। এগুলোর মাধ্যমে ডাটাবেস অপারেশনগুলো আরও সহজ এবং স্বয়ংক্রিয় হয়ে যায়।

Content added By
Promotion

Are you sure to start over?

Loading...