2.1 சிறுகுறிப்பு @Entity, @Table
உங்கள் வகுப்பை தரவுத்தளத்தில் உள்ள அட்டவணையில் வரைபடமாக்க விரும்பினால், இதற்காக நீங்கள் அதில் 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 | நீளம் | முழு எண்ணாக | அதிகபட்ச நீளம் (சரங்களுக்கு) |
எங்கள் பயனர் நிறுவன வகுப்பின் புலங்களில் சில கட்டுப்பாடுகளைச் சேர்ப்போம்:
- பயனர்பெயர் தனிப்பட்டதாகவும் 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;
}
நீங்கள் வகை பயனர் ஒரு பொருளை உருவாக்கலாம் மற்றும் அதற்கு அனைத்து பூஜ்ய புலங்களையும் ஒதுக்கலாம், இருப்பினும், நீங்கள் அதை தரவுத்தளத்தில் சேமிக்க முயற்சிக்கும்போது, Hibernate ஒரு சரிபார்ப்பைச் செய்யும், மேலும் ஏதேனும் கட்டுப்பாடுகள் மீறப்பட்டால், விதிவிலக்கு எறியப்படும்.
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;
}
தரவுத்தளத்தில் உங்கள் பொருட்களைச் சேர்க்கும்போது அவற்றின் ஐடிகளை ஹைபர்னேட் சுயாதீனமாக உருவாக்க விரும்பினால் , நீங்கள் இன்னும் ஒரு சிறுகுறிப்பைச் சேர்க்க வேண்டும் - @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;
}
@Column
ஐடி புலத்திற்கான சிறுகுறிப்பை நாங்கள் இங்கு தவிர்த்துவிட்டோம், ஏனெனில் அது மதிப்புமிக்க தகவல்களைக் கொண்டிருக்கவில்லை - அட்டவணையில் உள்ள புலத்தின் பெயர் மற்றும் நெடுவரிசையின் பெயர் ஒரே மாதிரியாக உள்ளன, மேலும் மீதமுள்ள சிறுகுறிப்புகளுக்கு நன்றி, நாங்கள் ஒரு அட்டவணையைப் பற்றி பேசுகிறோம் என்பதை ஹைபர்னேட் ஏற்கனவே புரிந்துகொண்டார் . நெடுவரிசை.
GO TO FULL VERSION