Field এবং Column Mapping এর জন্য @Column এনোটেশন

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

338

JPA (Java Persistence API) ব্যবহার করার সময়, @Column এনোটেশনটি Java অবজেক্টের ফিল্ড (field) এবং ডেটাবেস টেবিলের কলাম (column) এর মধ্যে সম্পর্ক তৈরি করতে ব্যবহৃত হয়। এটি মূলত একটি ফিল্ডের জন্য একটি নির্দিষ্ট ডেটাবেস কলামকে মানচিত্র (map) করে, যাতে JPA নিশ্চিত করতে পারে যে Java অবজেক্টের ফিল্ডটি ডেটাবেসের ঠিক কোন কলামে সংরক্ষিত হবে।

@Column এনোটেশনটি @Entity শ্রেণীর মধ্যে ব্যবহৃত হয়, এবং এটি ডেটাবেস টেবিলের সাথে অবজেক্ট-রিলেশনাল ম্যাপিং (ORM) করার জন্য গুরুত্বপূর্ণ। JPA এর মধ্যে @Column এনোটেশন প্রয়োগ করে আপনি বিভিন্ন বৈশিষ্ট্য কনফিগার করতে পারেন যেমন কলামের নাম, ডেটা টাইপ, দৈর্ঘ্য, অপরিবর্তনীয়তা (nullable) এবং আরও অনেক কিছু।

@Column এনোটেশন এর সাধারণ ব্যবহার


@Column এনোটেশনটি ফিল্ডের উপরে ব্যবহার করা হয় এবং এটি ডেটাবেস টেবিলের কলামের সাথে Java ফিল্ডকে সম্পর্কিত করে। এর মাধ্যমে ডেটাবেসের কলামের নাম, প্রকার, দৈর্ঘ্য ইত্যাদি নির্ধারণ করা যায়।

সিনট্যাক্স:

@Column(name = "column_name", nullable = false, length = 100, unique = true)
private String fieldName;

এখানে,

  • name: ডেটাবেস টেবিলের কলামের নাম।
  • nullable: যদি এটি false থাকে, তবে ওই কলামে null মান থাকতে পারবে না।
  • length: স্ট্রিং টাইপ কলামের জন্য দৈর্ঘ্য নির্ধারণ করা হয়।
  • unique: কলামের মান ইউনিক (অন্য সবার থেকে আলাদা) হবে কিনা তা নির্ধারণ করে।

@Column এনোটেশন এর ব্যবহার উদাহরণ


ধরা যাক, আপনার একটি User নামক JPA Entity রয়েছে এবং আপনি সেই অবজেক্টের ফিল্ডগুলো ডেটাবেস টেবিলের কলামে ম্যাপ করতে চান।

@Column এনোটেশন ব্যবহার করে একটি ক্লাসের উদাহরণ

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;

@Entity
public class User {

    @Id
    private Long id;

    @Column(name = "first_name", nullable = false, length = 50)
    private String firstName;

    @Column(name = "last_name", nullable = false, length = 50)
    private String lastName;

    @Column(name = "email", unique = true, nullable = false)
    private String email;

    // Getters and Setters
    public Long getId() {
        return id;
    }

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

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}

ব্যাখ্যা:

  • @Id: id ফিল্ডটি ডেটাবেসের টেবিলের প্রাইমারি কী হিসেবে কাজ করবে।
  • @Column(name = "first_name", nullable = false, length = 50): firstName ফিল্ডটি ডেটাবেস টেবিলের first_name কলামে ম্যাপ হবে। এই কলামে null মান গ্রহণ করা যাবে না এবং এর দৈর্ঘ্য 50 অক্ষর হবে।
  • @Column(name = "email", unique = true, nullable = false): email ফিল্ডটি ডেটাবেস টেবিলের email কলামে ম্যাপ হবে, এই কলামে ইউনিক ভ্যালু থাকতে হবে এবং null থাকতে পারবে না।

@Column এনোটেশন এর অন্যান্য অপশন


JPA এর @Column এনোটেশনটি আরও কিছু গুরুত্বপূর্ণ বৈশিষ্ট্য সমর্থন করে:

  • insertable: এটি যদি false হয়, তবে JPA ঐ ফিল্ডের জন্য ডেটাবেসে ইনসার্ট অপারেশন করবে না।

    @Column(insertable = false)
    private String fieldName;
    
  • updatable: এটি যদি false হয়, তবে JPA ঐ ফিল্ডের জন্য ডেটাবেসে আপডেট অপারেশন করবে না।

    @Column(updatable = false)
    private String fieldName;
    
  • columnDefinition: এটি কলামের জন্য ডেটাবেসে কাস্টম SQL ডিফিনেশন প্রদান করতে ব্যবহৃত হয়। এটি সাধারণত ডেটাবেস স্কিমা কাস্টমাইজেশনের জন্য ব্যবহার করা হয়।

    @Column(columnDefinition = "VARCHAR(100) DEFAULT 'N/A'")
    private String fieldName;
    
  • precision এবং scale: এই অপশনগুলি সংখ্যা (numeric) কলামগুলির জন্য ব্যবহৃত হয়, যেখানে precision (মোট ডিজিট) এবং scale (ডেসিমাল পয়েন্টের পরে ডিজিট) নির্ধারণ করা হয়।

    @Column(precision = 10, scale = 2)
    private BigDecimal price;
    

@Column এনোটেশন ব্যবহার করার সুবিধা


  1. স্পষ্ট ম্যাপিং: @Column এনোটেশন ব্যবহার করে ডেটাবেস টেবিলের কলামগুলির সাথে Java ক্লাসের ফিল্ডগুলির স্পষ্ট সম্পর্ক তৈরি করা যায়, যা কোডের রিডেবিলিটি উন্নত করে।
  2. ডেটাবেস কাস্টমাইজেশন: ডেটাবেস কলামগুলির জন্য কাস্টম নাম, ডেটা টাইপ, লেন্থ এবং অন্যান্য প্রোপার্টি নির্ধারণ করার সুবিধা প্রদান করে।
  3. এনোটেশন ভিত্তিক কনফিগারেশন: XML কনফিগারেশন ছাড়াই ডেটাবেস টেবিলের কনফিগারেশন করা যায়, যা Java কোডের মধ্যে সরাসরি অন্তর্ভুক্ত থাকে।
  4. ফিল্ডের জন্য রেস্ট্রিকশন: nullable, unique, length ইত্যাদি অপশন ব্যবহার করে ফিল্ডের জন্য রেস্ট্রিকশন বা শর্ত নির্ধারণ করা যায়।

সারাংশ


@Column এনোটেশন JPA এর একটি গুরুত্বপূর্ণ অংশ যা Java অবজেক্টের ফিল্ডগুলির সাথে ডেটাবেস টেবিলের কলামগুলোকে ম্যাপ করার জন্য ব্যবহৃত হয়। এটি ডেটাবেসের কাঠামো এবং Java কোডের মধ্যে সুসংগত সম্পর্ক তৈরি করতে সাহায্য করে, ফলে ডেটাবেস অপারেশন আরও সহজ, দ্রুত এবং কার্যকরী হয়। @Column এর মাধ্যমে ডেটাবেস কলামের নাম, টাইপ, দৈর্ঘ্য, ইউনিক বা নালযোগ্যতা নির্ধারণ করা যায় এবং এর মাধ্যমে ডেটাবেসের মানচিত্রে স্পষ্টতা আনা যায়।

Content added By
Promotion

Are you sure to start over?

Loading...