వివరణ

డేటాబేస్‌లో తరగతి సోపానక్రమాన్ని నిల్వ చేయడానికి మరొక వ్యూహాన్ని జాయిన్డ్ టేబుల్ అంటారు. దాని కోసం ఒక ప్రత్యేక ఉల్లేఖన ఉంది:

@Inheritance(strategy = InheritanceType.JOINED)

మా తరగతులకు ఉదాహరణ:

@Inheritance(strategy = InheritanceType.JOINED)
@Entity
class User {
  int id;
  String name;
  LocalDate birthday;
}
@Entity
class Employee extends User {
 	String occupation;
 	int salary;
 	LocalDate join;
}
@Entity
class Client extends User {
   String address;
}

ఈ ఉల్లేఖనాన్ని ఉపయోగిస్తున్నప్పుడు, హైబర్నేట్ ప్రతి తరగతి మరియు దాని సబ్‌క్లాస్‌ల కోసం డేటాబేస్‌లో ప్రత్యేక పట్టికను ఆశిస్తుంది. వాటి నుండి డేటాను ఎంచుకున్నప్పుడు, మీరు SQL JOIN ఆపరేటర్‌ని ఉపయోగించాలి.

డేటాబేస్ స్కీమా ఉదాహరణ:

CREATE TABLE user {
  id INT,
  name VARCHAR,
  birthday DATE
}
CREATE TABLE employee {
  id INT,
  occupation VARCHAR,
  salary INT,
  join DATE
}
CREATE TABLE client {
  id INT,
  address VARCHAR
}

మీరు పట్టిక నుండి కొంత క్లయింట్ యొక్క డేటాను పొందాలని నిర్ణయించుకుంటే, పట్టికలలో చేరడానికి హైబర్నేట్ JOINని ఉపయోగించాలి:

SELECT u.id, u.name, u.birthday, c.address FROM user u JOIN client c ON u.id = c.id;

@PrimaryKeyJoinColumn

చైల్డ్ ఎంటిటీ క్లాస్‌లు టేబుల్‌లో పేరెంట్ ఎంటిటీ క్లాస్ యొక్క ఆబ్జెక్ట్ ఐడిని సూచించే నిలువు వరుసను కలిగి ఉంటాయి. ఈ నిలువు వరుస పేరు డిఫాల్ట్‌గా పేరెంట్ క్లాస్ కాలమ్ పేరుకు సమానంగా ఉంటుంది.

ఉదాహరణ:

@Inheritance(strategy = InheritanceType.JOINED)
@Entity
class User {
  @Id
  int user_identifier;
  String name;
  LocalDate birthday;
}
@Entity
class Employee extends User {
 	String occupation;
 	int salary;
 	LocalDate join;
}
@Entity
class Client extends User {
   String address;
}

అప్పుడు డేటాబేస్ పట్టిక ఇలా కనిపిస్తుంది:

CREATE TABLE user {
  user_identifier INT,
  name VARCHAR,
  birthday DATE
}
CREATE TABLE employee {
  user_identifier INT,
  occupation VARCHAR,
  salary INT,
  join DATE
}
CREATE TABLE client {
  user_identifier INT,
  address VARCHAR
}

మీరు ఆధారిత పట్టికలలో నిలువు వరుస పేరును భర్తీ చేయాలనుకుంటే, మీరు @PrimaryKeyJoinColumn ఉల్లేఖనాన్ని ఉపయోగించాలి . ఉదాహరణ:

@Inheritance(strategy = InheritanceType.JOINED)
@Entity
class User {
  @Id
  int user_identifier;
  String name;
  LocalDate birthday;
}
@Entity
@PrimaryKeyJoinColumn(name=”user_id”)
class Employee extends User {
 	String occupation;
 	int salary;
 	LocalDate join;
}
@Entity
@PrimaryKeyJoinColumn(name=”user_id2”)
class Client extends User {
   String address;
}

అప్పుడు డేటాబేస్ పట్టిక ఇలా కనిపిస్తుంది:

CREATE TABLE user {
  user_identifier INT,
  name VARCHAR,
  birthday DATE
}
CREATE TABLE employee {
  user_id INT,
  occupation VARCHAR,
  salary INT,
  join DATE
}
CREATE TABLE client {
  user_id2 INT,
  address VARCHAR
}