CodeGym /జావా కోర్సు /All lectures for TE purposes /హైబర్నేట్‌లో క్లాస్ మ్యాపింగ్

హైబర్నేట్‌లో క్లాస్ మ్యాపింగ్

All lectures for TE purposes
స్థాయి , పాఠం
అందుబాటులో ఉంది

2.1 ఉల్లేఖనం @ఎంటిటీ, @టేబుల్

మీరు మీ తరగతిని డేటాబేస్‌లోని పట్టికకు మ్యాప్ చేయాలనుకుంటే, దీని కోసం మీరు దానికి 3 ఉల్లేఖనాలను జోడించాలి.

ముందుగా, మీరు తరగతికి ఉల్లేఖనాన్ని జోడించాలి @Entity. క్లాస్ ముందు ఉన్న ఈ ఉల్లేఖనం హైబర్నేట్‌కి ఇది కేవలం క్లాస్ మాత్రమే కాదని, డేటాబేస్‌లో ఆబ్జెక్ట్‌లను నిల్వ చేయాల్సిన ప్రత్యేక తరగతి అని చెబుతుంది.

ఉదాహరణ:

@Entity
class User {
    public int id;
    public String name;
    public int level;
    public Date createdDate;
}

హైబర్నేట్ ఈ తరగతికి చెందిన వస్తువులను ప్రత్యేక పద్ధతిలో ట్రీట్ చేయడానికి ఇది సరిపోతుంది.

రెండవ ఉల్లేఖనం @Table. దాని సహాయంతో, మీరు ఈ తరగతి అనుబంధించబడే డేటాబేస్లో పట్టిక పేరును సెట్ చేయవచ్చు. ఉదాహరణ:

@Entity
@Table(name="user")
class User {
    public int id;
    public String name;
    public int level;
    public Date createdDate;
}

తరగతి పేరు మరియు పట్టిక పేరు ఒకేలా ఉంటే, ఉల్లేఖనాన్ని @Tableవిస్మరించవచ్చు.

అలాగే, మీ అప్లికేషన్ ఒకే సమయంలో అనేక స్కీమాల నుండి టేబుల్‌లతో పనిచేస్తుంటే, ఆ పట్టిక ఏ నిర్దిష్ట స్కీమాలో ఉందో మీరు పేర్కొనాలి:

@Entity
@Table(name="user", schema="test")
class User {
    public int id;
    public String name;
    public int level;
    public Date createdDate;
}

అవును, ప్రతిదీ కనిపించేంత సులభం.

2.2 @కాలమ్ ఉల్లేఖన

తెలుసుకోవలసిన రెండవ ముఖ్యమైన విషయం ఏమిటంటే, టేబుల్ కాలమ్‌లను క్లాస్ ఫీల్డ్‌లకు మ్యాపింగ్ చేయడం. సరళమైన సంస్కరణలో, హైబర్నేట్ మీ ఎంటిటీ క్లాస్ యొక్క ఫీల్డ్‌లను కావలసిన పట్టిక యొక్క నిలువు వరుసలకు మ్యాప్ చేస్తుంది.

మీరు మ్యాపింగ్ యొక్క అన్ని సూక్ష్మ నైపుణ్యాలను నియంత్రించాలనుకుంటే, మీరు ఉల్లేఖనాన్ని ఉపయోగించవచ్చు @Column. ఉదాహరణ:

@Entity
@Table(name="user")
class User {
   @Column(name="id")
   public Integer id;

   @Column(name="name")
   public String name;

   @Column(name="level")
   public Integer level;

   @Column(name="created_date")
   public Date createdDate;
}

ఉల్లేఖనం @Columnవివిధ పారామితులను కలిగి ఉంది, క్రింద మేము వాటిలో అత్యంత ప్రాచుర్యం పొందిన వాటిని పరిశీలిస్తాము:

# లక్షణం పేరు లక్షణం రకం వివరణ
1 పేరు స్ట్రింగ్ తరగతి ఫీల్డ్ కోసం పట్టిక నిలువు వరుస పేరును సెట్ చేస్తుంది
2 ఏకైక బూలియన్ అన్ని ఫీల్డ్ విలువలు ప్రత్యేకంగా ఉండాలి
3 శూన్యం బూలియన్ ఫీల్డ్ శూన్యం కావచ్చు
4 పొడవు int గరిష్ట పొడవు (తీగలు కోసం)

మన యూజర్ ఎంటిటీ క్లాస్ ఫీల్డ్‌లకు కొన్ని పరిమితులను జోడిద్దాం:

  • వినియోగదారు పేరు తప్పనిసరిగా ప్రత్యేకంగా ఉండాలి మరియు 100 అక్షరాల కంటే ఎక్కువ ఉండకూడదు
  • స్థాయి శూన్యం కావచ్చు
  • సృష్టించిన తేదీ శూన్యం కాదు

అప్పుడు మన ఉల్లేఖనాలు ఇలా అవుతాయి:

@Entity
@Table(name="user")
class User {
   @Column(name="id")
    public Integer id;

   @Column(name="name", unique=true, length=100)
   public String name;

   @Column(name="level", nullable=true)
   public Integer level;

   @Column(name="created_date", nullable=false)
   public Date createdDate;
}

మీరు వినియోగదారు రకం యొక్క ఆబ్జెక్ట్‌ను సృష్టించవచ్చు మరియు దానికి అన్ని శూన్య ఫీల్డ్‌లను కూడా కేటాయించవచ్చు, అయినప్పటికీ, మీరు దానిని డేటాబేస్‌లో సేవ్ చేయడానికి ప్రయత్నించినప్పుడు, హైబర్నేట్ తనిఖీ చేస్తుంది మరియు ఏదైనా పరిమితులు ఉల్లంఘించినట్లయితే, మినహాయింపు విసిరివేయబడుతుంది.

2.3 @Id ఉల్లేఖన

మరియు మరొక ముఖ్యమైన ఉల్లేఖనం @Id. ఇది టేబుల్ కోసం ప్రాథమిక కీని సెట్ చేయడానికి ఉపయోగించవచ్చు .

మీరు కోరుకున్న ఫీల్డ్ కోసం ఈ ఉల్లేఖనాన్ని పేర్కొనాలి - మరియు హైబర్నేట్ ప్రతిదీ స్వయంగా చేస్తుంది:

@Entity
@Table(name="user")
class User {
   @Id
   @Column(name="id")
   public Integer id;

   @Column(name="name")
   public String name;

   @Column(name="level")
   public Integer level;

   @Column(name="created_date")
   public Date createdDate;
}

మీ ఆబ్జెక్ట్‌లను డేటాబేస్‌కు జోడించేటప్పుడు హైబర్నేట్ స్వతంత్రంగా వాటి IDలను రూపొందించాలని మీరు కోరుకుంటే , మీరు మరొక ఉల్లేఖనాన్ని జోడించాలి - @GeneratedValue. అప్పుడు మా ఉదాహరణ ఇలా కనిపిస్తుంది:

@Entity
@Table(name="user")
class User {
   @Id
   @GeneratedValue
   public Integer id;

   @Column(name="name")
   public String name;

   @Column(name="level")
   public Integer level;

   @Column(name="created_date")
   public Date createdDate;
}

మేము ఇక్కడ id@Column ఫీల్డ్ కోసం ఉల్లేఖనాన్ని విస్మరించాము , ఎందుకంటే ఇది విలువైన సమాచారాన్ని కలిగి ఉండదు - టేబుల్‌లోని ఫీల్డ్ పేరు మరియు నిలువు వరుస పేరు ఒకేలా ఉన్నాయి మరియు మిగిలిన ఉల్లేఖనాలకు ధన్యవాదాలు, మేము టేబుల్ గురించి మాట్లాడుతున్నామని హైబర్నేట్ ఇప్పటికే అర్థం చేసుకుంది. కాలమ్.

వ్యాఖ్యలు
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION