āĻā§āĻŦāĻŋāĻ˛-āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ
āĻāĻŽāĻžāĻĻā§āĻ° āĻĻā§āĻāĻŋ āĻā§āĻŦāĻŋāĻ˛ āĻāĻŦāĻžāĻ° āĻ¤āĻžāĻāĻžāĻ¨:
āĻāĻāĻĄāĻŋ | āĻ¨āĻžāĻŽ | āĻĒā§āĻļāĻž | āĻŦā§āĻ¤āĻ¨ | āĻŦāĻ¯āĻŧāĻ¸ | āĻ¤āĻžāĻ°āĻŋāĻ āĻ¯ā§āĻ āĻĻāĻŋāĻ¤ā§ |
---|---|---|---|---|---|
1 | āĻāĻāĻžāĻ¨āĻ āĻāĻāĻžāĻ¨ | āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻžāĻ° | 100000 | 25 | 2012-06-30 |
2 | āĻĒā§āĻā§āĻ°ā§āĻ āĻĒā§āĻā§āĻ° | āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻžāĻ° | 80000 | 23 | 2013-08-12 |
3 | āĻāĻāĻžāĻ¨āĻ āĻ¸ā§āĻ°ā§āĻā§āĻ | āĻĒāĻ°ā§āĻā§āĻˇāĻ | 40000 | āĻ¤ā§āĻ°āĻŋāĻļ | 2014-01-01 |
4 | āĻ°āĻžāĻŦāĻŋāĻ¨ā§āĻāĻŋāĻ āĻŽāĻāĻļāĻž | āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ | 200000 | 35 | 2015-05-12 |
5 | āĻāĻŋāĻ°āĻŋāĻ¯āĻŧā§āĻ¨āĻā§ āĻāĻ¨āĻžāĻ¸ā§āĻ¤āĻžāĻ¸āĻŋāĻ¯āĻŧāĻž | āĻ āĻĢāĻŋāĻ¸ āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻĒāĻ | 40000 | 25 | 2015-10-10 |
6 | āĻāĻžāĻ¸ā§āĻāĻž | āĻŦāĻŋāĻĄāĻŧāĻžāĻ˛ | 1000 | 3 | 2018-11-11 |
āĻāĻ°ā§āĻŽāĻāĻžāĻ°ā§ āĻā§āĻŦāĻŋāĻ˛:
āĻāĻ āĻā§āĻŦāĻŋāĻ˛ā§ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻ˛āĻžāĻŽ āĻāĻā§:
- āĻāĻāĻĄāĻŋ āĻāĻāĻāĻ¨āĻāĻŋ
- āĻ¨āĻžāĻŽ VARCHAR
- āĻĒā§āĻļāĻž āĻāĻžāĻ°ā§āĻāĻž
- āĻŦā§āĻ¤āĻ¨ INT
- āĻŦāĻ¯āĻŧāĻ¸ INT
- join_date DATE
āĻāĻŦāĻ āĻāĻāĻāĻžāĻŦā§ āĻāĻžāĻ¸ā§āĻ āĻā§āĻŦāĻŋāĻ˛ , āĻ¯āĻž āĻāĻ°ā§āĻŽā§āĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻžāĻ āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§, āĻāĻ° āĻŽāĻ¤ā§ āĻĻā§āĻāĻžāĻ¯āĻŧ:
āĻāĻāĻĄāĻŋ | emploee_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 - āĻāĻ°ā§āĻŽāĻāĻžāĻ°ā§ āĻā§āĻŦāĻŋāĻ˛ āĻĨā§āĻā§ āĻāĻ°ā§āĻŽāĻāĻžāĻ°ā§āĻ° āĻāĻāĻĄāĻŋ āĻ¯ā§āĻāĻŋ āĻāĻžāĻ¸ā§āĻāĻāĻŋ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
- āĻ¨āĻžāĻŽ - āĻāĻžāĻ¸ā§āĻā§āĻ° āĻ¨āĻžāĻŽ āĻāĻŦāĻ āĻŦāĻŋāĻŦāĻ°āĻŖāĨ¤
- āĻ¸āĻŽāĻ¯āĻŧāĻ¸ā§āĻŽāĻž - āĻ¯ā§ āĻ¸āĻŽāĻ¯āĻŧāĻāĻŋ āĻāĻžāĻāĻāĻŋ āĻļā§āĻˇ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤
āĻāĻ°ā§āĻŽāĻāĻžāĻ°ā§ āĻā§āĻŦāĻŋāĻ˛ā§ āĻāĻāĻāĻŋ āĻāĻāĻ āĻāĻ¨ā§āĻā§āĻ°āĻŋ āĻāĻžāĻ¸ā§āĻ āĻā§āĻŦāĻŋāĻ˛ā§āĻ° āĻ āĻ¨ā§āĻ āĻ¸āĻžāĻ°āĻŋ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻā§āĻŦāĻŋāĻ˛-āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻā§ āĻāĻ-āĻĨā§āĻā§- āĻ āĻ¨ā§āĻ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧāĨ¤
āĻāĻžāĻāĻž āĻā§āĻ˛āĻžāĻ¸ āĻ˛ā§āĻā§āĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ
āĻāĻŦāĻ āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻ˛āĻžāĻ¸, āĻāĻ°ā§āĻŽāĻāĻžāĻ°ā§ āĻļā§āĻ°ā§āĻŖā§ :
@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 āĻā§āĻāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ , āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§āĻāĻŋ āĻ¯ā§ āĻāĻžāĻ¸ā§āĻ āĻā§āĻŦāĻŋāĻ˛ā§āĻ° āĻā§āĻ¨ āĻāĻ˛āĻžāĻŽā§ āĻ āĻŦāĻā§āĻā§āĻ āĻāĻāĻĄāĻŋ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĻāĻ°ā§āĻŽāĻāĻžāĻ°ā§.
āĻ¯āĻžāĻāĻšā§āĻ, EmployeeTask āĻā§āĻ˛āĻžāĻ¸ā§ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻŽāĻ¨ āĻāĻāĻāĻŋ āĻā§āĻˇā§āĻ¤ā§āĻ° āĻĨāĻžāĻā§ āĻ¨āĻž āĻ¯āĻž āĻāĻ°ā§āĻŽāĻāĻžāĻ°ā§_āĻāĻāĻĄāĻŋ āĻāĻ˛āĻžāĻŽāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖ:
@Entity
@Table(name="task")
class EmployeeTask {
@Column(name="id")
public Integer id;
@Column(name="name")
public String description;
@Column(name="deadline")
public Date deadline;
}
āĻāĻ°ā§āĻŽāĻāĻžāĻ°ā§_āĻāĻāĻĄāĻŋ āĻā§āĻˇā§āĻ¤ā§āĻ°āĻāĻŋāĻā§ āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻā§āĻˇā§āĻ¤ā§āĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻāĻ° āĻŽāĻžāĻ¨ āĻšāĻžāĻāĻŦāĻžāĻ°āĻ¨ā§āĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤
āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻāĻ°ā§āĻ¨
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻŋāĻā§ āĻāĻ°ā§āĻŽā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻŋāĻā§ āĻāĻžāĻ āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ¨, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻ°āĻāĻŽ āĻā§āĻĄ āĻ˛āĻŋāĻāĻ¤ā§ āĻšāĻŦā§:
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 āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻ¸āĻā§āĻāĻžāĻ˛āĻŋāĻ¤ āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻ āĻŦāĻā§āĻā§āĻā§āĻ° āĻāĻāĻĄāĻŋ āĻĨāĻžāĻā§āĨ¤
āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻāĻŽāĻ°āĻž āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻāĻā§ āĻā§āĻāĻā§ āĻĒāĻžāĻ, āĻ¤āĻžāĻ° āĻāĻžāĻ āĻĨā§āĻā§ āĻāĻžāĻ¸ā§āĻ āĻĢāĻŋāĻ˛ā§āĻĄāĻāĻŋ āĻ¨āĻŋāĻ¯āĻŧā§ āĻ¤āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻĻā§āĻāĻŋ āĻāĻžāĻ āĻ¯ā§āĻ āĻāĻ°āĻŋāĨ¤ āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻāĻŽāĻ°āĻž āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻāĻā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻŋāĨ¤ āĻāĻ° āĻĒāĻ°ā§, āĻŽāĻžāĻ¨ 4 āĻ¨āĻ¤ā§āĻ¨ āĻāĻžāĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§ āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻšāĻŦā§ āĻāĻ°ā§āĻŽāĻāĻžāĻ°ā§_āĻāĻāĻĄāĻŋ āĻāĻ˛āĻžāĻŽ - āĻāĻ°ā§āĻŽāĻāĻžāĻ°ā§ āĻā§āĻŦāĻŋāĻ˛ā§ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻā§āĻ° āĻāĻāĻĄāĻŋāĨ¤
āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ ! āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻā§āĻŦāĻŋāĻ˛āĻā§āĻ˛āĻŋ @ManyToOne āĻāĻŦāĻ @OneToMany āĻā§āĻāĻžāĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻ āĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻ āĻā§āĻŦāĻŋāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻžāĻāĻž āĻā§āĻ˛āĻžāĻ¸ āĻāĻŋāĻ¨ā§āĻ¨āĨ¤