JPA Entity Class তৈরি করা

Entity এবং Mapping - জেপিএ  (JPA) - Java Technologies

388

JPA Entity Class হল একটি Java ক্লাস যা ডেটাবেস টেবিলের প্রতিনিধিত্ব করে এবং এতে ডেটাবেস টেবিলের রেকর্ডগুলির জন্য প্রোপার্টি থাকে। JPA Entity ক্লাস তৈরি করার মাধ্যমে আপনি ডেটাবেসের টেবিলের সঙ্গে Java অবজেক্টের সম্পর্ক স্থাপন করতে পারবেন এবং সহজেই ডেটাবেসের সাথে ইন্টারঅ্যাক্ট করতে পারবেন। এই ক্লাসে কিছু গুরুত্বপূর্ণ অ্যানোটেশন ব্যবহার করতে হয়, যেমন @Entity, @Id, @GeneratedValue, @Column, ইত্যাদি।

JPA Entity Class তৈরি করার প্রক্রিয়া


1. @Entity অ্যানোটেশন ব্যবহার করা
প্রথমত, Entity ক্লাসের উপরে @Entity অ্যানোটেশন ব্যবহার করতে হবে, যা ডেটাবেস টেবিলের প্রতিনিধিত্ব করবে।

2. @Id অ্যানোটেশন ব্যবহার করা
প্রত্যেক Entity ক্লাসে একটি প্রাইমারি কী (primary key) থাকতে হবে, এবং সেই প্রপার্টির উপরে @Id অ্যানোটেশন ব্যবহার করতে হবে।

3. @GeneratedValue অ্যানোটেশন ব্যবহার করা
প্রাইমারি কী যদি অটোমেটিকভাবে জেনারেট হয় (যেমন, ইনক্রিমেন্ট হিসেবে), তবে @GeneratedValue অ্যানোটেশন ব্যবহার করা হয়।

4. @Column অ্যানোটেশন ব্যবহার করা (অপশনাল)
যদি টেবিলের কলামের নাম Java প্রোপার্টির নামের সাথে মেলে না, তাহলে @Column অ্যানোটেশন ব্যবহার করা হয়। এটি ডেটাবেস টেবিলের কলামের নাম নির্ধারণ করে।

উদাহরণ: JPA Entity Class

ধরা যাক, আমাদের একটি Employee টেবিল তৈরি করতে হবে, যার মধ্যে id, name, salary, এবং department ফিল্ড থাকবে। এই টেবিলের জন্য Entity ক্লাসটি নিম্নরূপ হবে:

Employee Entity Class:

import javax.persistence.*;

@Entity // Entity ক্লাস হিসেবে ঘোষণা
@Table(name = "employee") // ডেটাবেস টেবিলের নাম (অপশনাল)
public class Employee {

    @Id // প্রাইমারি কী
    @GeneratedValue(strategy = GenerationType.IDENTITY) // অটোমেটিক প্রাইমারি কী জেনারেশন
    @Column(name = "id") // টেবিলের কলামের নাম
    private Long id;

    @Column(name = "name", nullable = false) // টেবিলের কলাম 'name'
    private String name;

    @Column(name = "salary")
    private double salary;

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

    // ডিফল্ট কনস্ট্রাক্টর
    public Employee() {}

    // প্যারামিটারাইজড কনস্ট্রাক্টর
    public Employee(String name, double salary, String department) {
        this.name = name;
        this.salary = salary;
        this.department = 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 double getSalary() {
        return salary;
    }

    public void setSalary(double salary) {
        this.salary = salary;
    }

    public String getDepartment() {
        return department;
    }

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

Entity ক্লাসের প্রধান অ্যানোটেশনগুলি:


  1. @Entity:
    এটি ক্লাসকে Entity হিসেবে চিহ্নিত করে, যা ডেটাবেস টেবিলের প্রতিনিধিত্ব করবে। যদি Entity ক্লাসে @Entity অ্যানোটেশন না থাকে, তাহলে JPA বুঝবে এটি ডেটাবেস টেবিলের সঙ্গে সম্পর্কিত নয়।
  2. @Id:
    এটি সেই প্রপার্টিকে চিহ্নিত করে যা ডেটাবেস টেবিলের প্রাইমারি কী হবে।
  3. @GeneratedValue:
    এই অ্যানোটেশনটি প্রাইমারি কীকে অটোমেটিকভাবে জেনারেট করার জন্য ব্যবহৃত হয়। উদাহরণস্বরূপ, GenerationType.IDENTITY ব্যবহার করলে প্রাইমারি কীটি ইনক্রিমেন্টাল হবে।
  4. @Column:
    এই অ্যানোটেশনটি প্রতিটি Entity প্রপার্টির সাথে টেবিলের কলাম সম্পর্ক স্থাপন করে। আপনি এর মাধ্যমে টেবিলের কলামের নাম, ডেটাটাইপ, nullable ইত্যাদি কনফিগার করতে পারেন।
  5. @Table:
    টেবিলের নাম স্পেসিফাই করতে এই অ্যানোটেশনটি ব্যবহার করা হয়। যদি ক্লাসের নাম ডেটাবেস টেবিলের নামের সাথে মেলে, তবে এই অ্যানোটেশনটি ঐচ্ছিক।

JPA Entity Class এর সাথে সম্পর্কিত কনসেপ্টস:


  1. EntityManager:
    JPA এর প্রধান API হল EntityManager। EntityManager ব্যবহার করে আপনি Entity অবজেক্টকে ডেটাবেসে সেভ, আপডেট, ডিলিট এবং ফাইন্ড করতে পারেন।

    উদাহরণ:

    EntityManagerFactory emf = Persistence.createEntityManagerFactory("myJpaUnit");
    EntityManager em = emf.createEntityManager();
    
    em.getTransaction().begin();
    
    Employee employee = new Employee("John Doe", 50000, "IT");
    em.persist(employee); // Persisting the employee object to the database
    
    em.getTransaction().commit();
    em.close();
    
  2. JPQL (Java Persistence Query Language):
    JPA এ কুয়েরি করার জন্য JPQL ব্যবহার করা হয়। এটি SQL এর মতো হলেও এটি Entity ক্লাসের উপর কাজ করে, ডেটাবেস টেবিলের উপর নয়।

    উদাহরণ:

    String query = "SELECT e FROM Employee e WHERE e.salary > :salary";
    TypedQuery<Employee> typedQuery = em.createQuery(query, Employee.class);
    typedQuery.setParameter("salary", 40000);
    List<Employee> employees = typedQuery.getResultList();
    
  3. Entity Lifecycle:
    JPA Entity অবজেক্টের বিভিন্ন লাইফসাইকেল স্টেট রয়েছে, যেমন New, Managed, Detached, এবং Removed। EntityManager এর মাধ্যমে অবজেক্টগুলোর লাইফসাইকেল পরিচালনা করা হয়।

সারাংশ


JPA Entity Class তৈরি করা হল Java ক্লাসগুলিকে ডেটাবেস টেবিলের সঙ্গে সম্পর্কিত করার একটি প্রক্রিয়া। এই ক্লাসে @Entity, @Id, @GeneratedValue, এবং @Column এর মতো অ্যানোটেশন ব্যবহার করা হয়, যা ডেটাবেস টেবিলের কলামগুলির সাথে Java অবজেক্টের প্রপার্টি ম্যাপ করে। JPA Entity ব্যবহারের মাধ্যমে ডেটাবেস অপারেশন সহজে পরিচালিত হয় এবং Java অ্যাপ্লিকেশন ও ডেটাবেসের মধ্যে একটি দৃঢ় সংযোগ স্থাপন করা হয়।

Content added By
Promotion

Are you sure to start over?

Loading...