আমি উদাহরণের সাহায্যে আপনাকে বোঝানোর চেষ্টা করব। ধরুন আপনার কাছে দুটি কলাম এবং আইডি (ইনট) এবং NAME (স্ট্রিং) সহ একটি সম্পর্কিত টেবিল (শিক্ষার্থী) রয়েছে। এখন ওআরএম হিসাবে আপনি কিছুটা নীচের মতো একটি সত্তা শ্রেণি তৈরি করেছেন: -
package com.kashyap.default;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "STUDENT")
public class Student implements Serializable {
private static final long serialVersionUID = -1354919370115428781L;
@Id
@Column(name = "ID")
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@Column(name = "NAME")
private String name;
public Student(){
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
ধরে নেওয়া যাক টেবিলে ইতিমধ্যে এন্ট্রি রয়েছে। এখন যদি কেউ আপনাকে "এজিই" (অন্তর্) এর আর একটি কলাম যুক্ত করতে বলে
টেবিল স্টুডেন্ট অ্যাজ ইন ইন নুল
প্রাক-ভরা টেবিলটিতে অন্য কলাম যুক্ত করতে আপনাকে NULL হিসাবে ডিফল্ট মান সেট করতে হবে। এটি আপনাকে ক্লাসে আরও একটি ক্ষেত্র যুক্ত করে তোলে। এখন প্রশ্ন উঠেছে যে আপনি ক্ষেত্রটি ঘোষণার জন্য কোনও আদিম ডেটা টাইপ বা নন আদিম মোড়কের ডেটা টাইপ ব্যবহার করবেন।
@Column(name = "AGE")
private int age;
বা
@Column(name = "AGE")
private INTEGER age;
আপনাকে ক্ষেত্রটি অ আদিম মোড়কের ডেটা টাইপ হিসাবে ঘোষণা করতে হবে কারণ ধারকটি সত্তার সাথে টেবিলটি মানচিত্র করার চেষ্টা করবে। সুতরাং আপনি যদি ক্ষেত্রটিকে মোড়ক হিসাবে ঘোষণা না করেন এবং অবশেষে "নাল মানটি আদিম ধরণের সেটারের একটি সম্পত্তিতে বরাদ্দ করা হয়" ব্যতীত নুল মানগুলি (ডিফল্ট) মানচিত্র করতে সক্ষম হয় না।