āļ„āļ§āļēāļĄāļŠāļąāļĄāļžāļąāļ™āļ˜āđŒāļĢāļ°āļ”āļąāļšāļ•āļēāļĢāļēāļ‡

āļĄāļēāļ”āļđāļ•āļēāļĢāļēāļ‡āļ—āļąāđ‰āļ‡āļŠāļ­āļ‡āļ‚āļ­āļ‡āđ€āļĢāļēāļ­āļĩāļāļ„āļĢāļąāđ‰āļ‡:

āļĢāļŦāļąāļŠ āļŠāļ·āđˆāļ­ āļ­āļēāļŠāļĩāļž āđ€āļ‡āļīāļ™āđ€āļ”āļ·āļ­āļ™ āļ­āļēāļĒāļļ āđ€āļ‚āđ‰āļēāļĢāđˆāļ§āļĄ_āļ§āļąāļ™āļ—āļĩāđˆ
1 āļ­āļĩāļ§āļēāļ™āļ­āļŸ āļ­āļĩāļ§āļēāļ™ āđ‚āļ›āļĢāđāļāļĢāļĄāđ€āļĄāļ­āļĢāđŒ 100,000 25 2555-06-30
2 āđ€āļ›āļ•āļĢāļ­āļŸ āđ€āļ›āļ•āļĢāļ­āļŸ āđ‚āļ›āļĢāđāļāļĢāļĄāđ€āļĄāļ­āļĢāđŒ 80000 23 2013-08-12
3 āļ­āļĩāļ§āļēāļ™āļ­āļŸ āđ€āļ‹āļ­āļĢāđŒāđ€āļāļĒāđŒ āđ€āļ—āļŠāđ€āļ•āļ­āļĢāđŒ 40000 āļŠāļēāļĄāļŠāļīāļš 2014-01-01
4 āļĢāļēāļšāļīāđ‚āļ™āļ§āļīāļŠ āļĄāļ­āļĒāļŠāļē āļœāļđāđ‰āļ­āļģāļ™āļ§āļĒāļāļēāļĢ 200,000 35 2015-05-12
5 āļ„āļīāđ€āļĢāļĩāļĒāļ™āđ‚āļ āļ­āļ™āļēāļŠāļ•āļēāđ€āļ‹āļĩāļĒ āļœāļđāđ‰āļˆāļąāļ”āļāļēāļĢāļŠāļģāļ™āļąāļāļ‡āļēāļ™ 40000 25 2015-10-10
6 āļ§āļēāļŠāļāđ‰āļē āđāļĄāļ§ 1,000 3 2018-11-11

āļ•āļēāļĢāļēāļ‡āļžāļ™āļąāļāļ‡āļēāļ™:

āļ•āļēāļĢāļēāļ‡āļ™āļĩāđ‰āļĄāļĩāļ„āļ­āļĨāļąāļĄāļ™āđŒāļ•āđˆāļ­āđ„āļ›āļ™āļĩāđ‰:

  • āļĢāļŦāļąāļŠ INT
  • āļŠāļ·āđˆāļ­āļ§āļēāļĢāđŒāļŠāļēāļĢāđŒ
  • āļ­āļēāļŠāļĩāļž VARCHA
  • INT āđ€āļ‡āļīāļ™āđ€āļ”āļ·āļ­āļ™
  • āļ­āļēāļĒāļļ INT
  • join_dateāļ§āļąāļ™āļ—āļĩāđˆ

āđāļĨāļ°āļ™āļĩāđˆāļ„āļ·āļ­āļĨāļąāļāļĐāļ“āļ°āļ‚āļ­āļ‡āļ•āļēāļĢāļēāļ‡āļ‡āļēāļ™āļ‹āļķāđˆāļ‡āļĄāļĩāļ‡āļēāļ™āļŠāļģāļŦāļĢāļąāļšāļžāļ™āļąāļāļ‡āļēāļ™ āļĄāļĩāļĨāļąāļāļĐāļ“āļ°āļ”āļąāļ‡āļ™āļĩāđ‰:

āļĢāļŦāļąāļŠ āļžāļ™āļąāļāļ‡āļēāļ™_id āļŠāļ·āđˆāļ­ āļ§āļąāļ™āļāļģāļŦāļ™āļ”āļŠāđˆāļ‡
1 1 āđāļāđ‰āđ„āļ‚āļ‚āđ‰āļ­āļšāļāļžāļĢāđˆāļ­āļ‡āđƒāļ™āļŠāđˆāļ§āļ™āļŦāļ™āđ‰āļē 2022-06-01
2 2 āđāļāđ‰āđ„āļ‚āļ‚āđ‰āļ­āļšāļāļžāļĢāđˆāļ­āļ‡āđƒāļ™āļŠāđˆāļ§āļ™āļŦāļĨāļąāļ‡ 2022-06-15
3 5 āļ‹āļ·āđ‰āļ­āļāļēāđāļŸ 2022-07-01
4 5 āļ‹āļ·āđ‰āļ­āļāļēāđāļŸ 2022-08-01
5 5 āļ‹āļ·āđ‰āļ­āļāļēāđāļŸ 2022-09-01
6 (āđ‚āļĄāļ†āļ°) āļ—āļģāļ„āļ§āļēāļĄāļŠāļ°āļ­āļēāļ”āļŠāļģāļ™āļąāļāļ‡āļēāļ™ (āđ‚āļĄāļ†āļ°)
7 4 āđƒāļŠāđ‰āļŠāļĩāļ§āļīāļ•āđƒāļŦāđ‰āļŠāļ™āļļāļ (āđ‚āļĄāļ†āļ°)
8 6 āđƒāļŠāđ‰āļŠāļĩāļ§āļīāļ•āđƒāļŦāđ‰āļŠāļ™āļļāļ (āđ‚āļĄāļ†āļ°)

āļ•āļēāļĢāļēāļ‡āļ™āļĩāđ‰āļĄāļĩāđ€āļžāļĩāļĒāļ‡ 4 āļ„āļ­āļĨāļąāļĄāļ™āđŒ:

  • idāļ„āļ·āļ­āļŦāļĄāļēāļĒāđ€āļĨāļ‚āđ€āļ‰āļžāļēāļ°āļ‚āļ­āļ‡āļ‡āļēāļ™ (āđāļĨāļ°āđāļ–āļ§āđƒāļ™āļ•āļēāļĢāļēāļ‡)
  • Employee_id - ID āļ‚āļ­āļ‡āļžāļ™āļąāļāļ‡āļēāļ™āļˆāļēāļāļ•āļēāļĢāļēāļ‡āļžāļ™āļąāļāļ‡āļēāļ™āļ—āļĩāđˆāļĄāļ­āļšāļŦāļĄāļēāļĒāļ‡āļēāļ™āđƒāļŦāđ‰
  • āļŠāļ·āđˆāļ­ - āļŠāļ·āđˆāļ­āđāļĨāļ°āļĢāļēāļĒāļĨāļ°āđ€āļ­āļĩāļĒāļ”āļ‚āļ­āļ‡āļ‡āļēāļ™
  • āđ€āļŠāđ‰āļ™āļ•āļēāļĒ - āđ€āļ§āļĨāļēāļ—āļĩāđˆāļ•āđ‰āļ­āļ‡āļ—āļģāļ‡āļēāļ™āđƒāļŦāđ‰āđ€āļŠāļĢāđ‡āļˆ

āļĢāļēāļĒāļāļēāļĢāđ€āļ”āļĩāļĒāļ§āđƒāļ™āļ•āļēāļĢāļēāļ‡āļžāļ™āļąāļāļ‡āļēāļ™āļŠāļēāļĄāļēāļĢāļ–āļ­āđ‰āļēāļ‡āļ­āļīāļ‡āđ„āļ”āđ‰āļŦāļĨāļēāļĒāđāļ–āļ§āđƒāļ™āļ•āļēāļĢāļēāļ‡āļ‡āļēāļ™ āļ„āļ§āļēāļĄāļŠāļąāļĄāļžāļąāļ™āļ˜āđŒāļĢāļ°āļ”āļąāļšāļ•āļēāļĢāļēāļ‡āļ”āļąāļ‡āļāļĨāđˆāļēāļ§āđ€āļĢāļĩāļĒāļāļ§āđˆāļēāļŦāļ™āļķāđˆāļ‡āļ•āđˆāļ­āļāļĨāļļāđˆāļĄ

āļ„āļ§āļēāļĄāļŠāļąāļĄāļžāļąāļ™āļ˜āđŒāļāļąāļšāļĢāļ°āļ”āļąāļšāļ„āļĨāļēāļŠ Java

āđāļĨāļ°āļŠāļąāđ‰āļ™āđ€āļĢāļĩāļĒāļ™āļ‚āļ­āļ‡āđ€āļĢāļē āļŠāļąāđ‰āļ™āđ€āļĢāļĩāļĒāļ™ āļžāļ™āļąāļāļ‡āļēāļ™ :

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

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

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

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

   @Column(name="join_date")
   public Date join;
}

āđāļĨāļ° āļ„āļĨāļēāļŠ EmployeeTaskāđƒāļ™āļĢāļđāļ›āđāļšāļšāļ”āļąāđ‰āļ‡āđ€āļ”āļīāļĄ:

@Entity
@Table(name="task")
class EmployeeTask {
   @Column(name="id")
   public Integer id;

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

   @Column(name="employee_id")
   public Integer employeeId;

   @Column(name="deadline")
   public Date deadline;
}

āļ„āļģāļ­āļ˜āļīāļšāļēāļĒāļ›āļĢāļ°āļāļ­āļš @OneToMany

āđ€āļĢāļēāļŠāļēāļĄāļēāļĢāļ–āļˆāļąāļ”āđ€āļ•āļĢāļĩāļĒāļĄāļāļēāļĢāļŠāļ·āđˆāļ­āļŠāļēāļĢāļĢāļ°āļŦāļ§āđˆāļēāļ‡āļ„āļĨāļēāļŠāļ‚āļ­āļ‡āđ€āļ­āļ™āļ—āļīāļ•āļĩāļ”āđ‰āļ§āļĒāļ§āļīāļ˜āļĩāļ­āļ·āđˆāļ™āđ„āļ”āđ‰

āļˆāļģ āļ„āļģāļ­āļ˜āļīāļšāļēāļĒ āļ›āļĢāļ°āļāļ­āļš @ElementCollectionāļ—āļĩāđˆāđ€āļĢāļēāđ€āļ„āļĒāļŠāļĢāđ‰āļēāļ‡āļ„āļ­āļĨāđ€āļĨāļāļŠāļąāļ™āļ‚āļ­āļ‡āļ§āļąāļ•āļ–āļļāļĒāđˆāļ­āļĒāđƒāļ™āļ„āļĨāļēāļŠāļžāļēāđ€āļĢāļ™āļ•āđŒāđ„āļ”āđ‰āđ„āļŦāļĄ āļŠāļīāđˆāļ‡āļ—āļĩāđˆ āļ„āļĨāđ‰āļēāļĒāļāļąāļ™āļŠāļēāļĄāļēāļĢāļ–āļ—āļģāđ„āļ”āđ‰āļ”āđ‰āļ§āļĒ āļ„āļģāļ­āļ˜āļīāļšāļēāļĒāļ›āļĢāļ°āļāļ­āļš @OneToMany āđ€āļ‰āļžāļēāļ°āđ€āļ§āļĨāļēāļ™āļĩāđ‰ āļ„āļĨāļēāļŠ āļžāļ™āļąāļāļ‡āļēāļ™ āļˆāļ°āđ€āļ›āļĨāļĩāđˆāļĒāļ™āđ„āļ› :

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

   @OneToMany(cascade = CascadeType.ALL)
   @JoinColumn(name = "employee_id")
   private Set<EmployeeTask> tasks = new HashSet<EmployeeTask>();
}

āļāļēāļĢāđƒāļŠāđ‰ āļ„āļģāļ­āļ˜āļīāļšāļēāļĒāļ›āļĢāļ°āļāļ­āļš @OneToManyāđ€āļĢāļēāļĢāļ°āļšāļļāļ§āđˆāļēāļ§āļąāļ•āļ–āļļāļ™āļąāđ‰āļ™āļžāļ™āļąāļāļ‡āļēāļ™āļŠāļēāļĄāļēāļĢāļ–āļˆāļąāļ”āđ€āļāđ‡āļš āļ§āļąāļ•āļ–āļļ EmployeeTask āļˆāļģāļ™āļ§āļ™ āļĄāļēāļ āļ™āļ­āļāļˆāļēāļāļ™āļĩāđ‰ āļ”āđ‰āļ§āļĒāļāļēāļĢāđƒāļŠāđ‰ āļ„āļģāļ­āļ˜āļīāļšāļēāļĒāļ›āļĢāļ°āļāļ­āļš @JoinColumnāđ€āļĢāļēāļĢāļ°āļšāļļāļ§āđˆāļēāļ„āļ­āļĨāļąāļĄāļ™āđŒāđƒāļ”āļ‚āļ­āļ‡āļ•āļēāļĢāļēāļ‡āļ‡āļēāļ™āļ—āļĩāđˆāļˆāļąāļ”āđ€āļāđ‡āļš ID āļ§āļąāļ•āļ–āļļāļžāļ™āļąāļāļ‡āļēāļ™.

āļ­āļĒāđˆāļēāļ‡āđ„āļĢāļāđ‡āļ•āļēāļĄ āļ„āļĨāļēāļŠ EmployeeTaskāļĄāļąāļāļˆāļ°āđ„āļĄāđˆāļĄāļĩāļŸāļīāļĨāļ”āđŒāļ—āļĩāđˆāļ­āđ‰āļēāļ‡āļ–āļķāļ‡āļ„āļ­āļĨāļąāļĄāļ™āđŒ Employee_id āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡:

@Entity
@Table(name="task")
class EmployeeTask {
   @Column(name="id")
   public Integer id;

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

   @Column(name="deadline")
   public Date deadline;
}

āļŸāļīāļĨāļ”āđŒ Employee_id āļ–āļ·āļ­āđ€āļ›āđ‡āļ™āļŸāļīāļĨāļ”āđŒāļšāļĢāļīāļāļēāļĢāđāļĨāļ°āļ„āđˆāļēāļˆāļ°āļ–āļđāļāļ„āļ§āļšāļ„āļļāļĄāđ‚āļ”āļĒāđ„āļŪāđ€āļšāļ­āļĢāđŒāđ€āļ™āļ•

āļ‚āļ­āļ•āļąāļ§āļ­āļĒāđˆāļēāļ‡

āļŦāļēāļāļ„āļļāļ“āļ•āđ‰āļ­āļ‡āļāļēāļĢāđ€āļžāļīāđˆāļĄāļ‡āļēāļ™āđƒāļŦāđ‰āļāļąāļšāļžāļ™āļąāļāļ‡āļēāļ™ āļ„āļļāļ“āļ•āđ‰āļ­āļ‡āđ€āļ‚āļĩāļĒāļ™āđ‚āļ„āđ‰āļ”āļ”āļąāļ‡āļ™āļĩāđ‰:

EmployeeTask task1 = new EmployeeTask();
task1.description = "Do Something Important";
session.persist(task1);

EmployeeTask task2 = new EmployeeTask();
task2.description = "Nothing to do";
session.persist(task2);
session.flush();

Employee director = session.find(Employee.class, 4);
director.tasks.add(task1);
director.tasks.add(task2);

session.update(director);
session.flush();

āļ‚āļąāđ‰āļ™āđāļĢāļ āđ€āļĢāļēāļŠāļĢāđ‰āļēāļ‡ āļ­āļ­āļšāđ€āļˆāļāļ•āđŒ EmployeeTask āļŠāļ­āļ‡āļĢāļēāļĒāļāļēāļĢ āļšāļąāļ™āļ—āļķāļāļĨāļ‡āđƒāļ™āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ āđāļĨāļ°āđ€āļĢāļĩāļĒāļāđƒāļŠāđ‰ āđ€āļĄāļ˜āļ­āļ” flush()āđ€āļžāļ·āđˆāļ­āđƒāļŦāđ‰āļāļēāļĢāļ”āļģāđ€āļ™āļīāļ™āļāļēāļĢ INSERT āļ”āļģāđ€āļ™āļīāļ™āļāļēāļĢ āđāļĨāļ°āļ­āđ‡āļ­āļšāđ€āļˆāđ‡āļāļ•āđŒāļĄāļĩ ID

āļˆāļēāļāļ™āļąāđ‰āļ™āđ€āļĢāļēāļˆāļ°āļžāļšāļœāļđāđ‰āļ­āļģāļ™āļ§āļĒāļāļēāļĢāđƒāļ™āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ āļĢāļąāļšāļŸāļīāļĨāļ”āđŒāļ‡āļēāļ™āļˆāļēāļāđ€āļ‚āļē āđāļĨāļ°āđ€āļžāļīāđˆāļĄāļŠāļ­āļ‡āļ‡āļēāļ™āđƒāļŦāđ‰āļāļąāļšāđ€āļ‚āļē āļˆāļēāļāļ™āļąāđ‰āļ™āđ€āļĢāļēāļšāļąāļ™āļ—āļķāļāļœāļđāđ‰āļ­āļģāļ™āļ§āļĒāļāļēāļĢāļĨāļ‡āđƒāļ™āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨ āļŦāļĨāļąāļ‡āļˆāļēāļāļ™āļąāđ‰āļ™āļ„āđˆāļē 4 āļˆāļ°āļ›āļĢāļēāļāļāđƒāļ™āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāļŠāļģāļŦāļĢāļąāļšāļ‡āļēāļ™āđƒāļŦāļĄāđˆāđƒāļ™āļ„āļ­āļĨāļąāļĄāļ™āđŒ Employee_id - āļĢāļŦāļąāļŠāļ‚āļ­āļ‡āļœāļđāđ‰āļ­āļģāļ™āļ§āļĒāļāļēāļĢāđƒāļ™āļ•āļēāļĢāļēāļ‡āļžāļ™āļąāļāļ‡āļēāļ™

āļŠāļģāļ„āļąāļ! āļ•āļēāļĢāļēāļ‡āđƒāļ™āļāļēāļ™āļ‚āđ‰āļ­āļĄāļđāļĨāļˆāļ°āđ€āļŦāļĄāļ·āļ­āļ™āļāļąāļ™āļŠāļģāļŦāļĢāļąāļšāļ„āļģ āļ­āļ˜āļīāļšāļēāļĒāļ›āļĢāļ°āļāļ­āļš @ManyToOneāđāļĨāļ°@OneToMany āđāļ•āđˆāļ„āļĨāļēāļŠ Java āļŠāļģāļŦāļĢāļąāļšāļ•āļēāļĢāļēāļ‡āđ€āļŦāļĨāđˆāļēāļ™āļĩāđ‰āđāļ•āļāļ•āđˆāļēāļ‡āļāļąāļ™