我正在开发使用spring和hibernate的web应用程序。我正在使用employee和PersonelDetails两个表之间的一对一映射。下面Spring +休眠一对一映射
是我的bean类
=======================员工============= ========================
@Entity
@Table(name="employee")
public class Employee {
@Id
@Column
@GeneratedValue
private int empid;
@Column
private String firstName;
@Column
private String lastName;
@Column
private String email;
@Column
private String password;
@Column
private boolean isAdmin;
@Column
private boolean isActive;
@Column
private boolean isLocked;
//getter setters
=================== = personalDetails类====================
@Entity
@Table(name="PersonalDetails")
public class PersonalDetails {
@Column
@Id
private int empid;
@Column
private String personalEmail;
@Column
private String mob;
@Column
private String permenantAdress;
@Column
private String currentAddress;
@Column
private String gender;
@Column
private String maritialStatus;
@MapsId
@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "empid", referencedColumnName = "empid")
@ForeignKey(name="empid")
private Employee employee;
//getter setters
在我的申请表的员工是由管理员用户一段时间后,在创建新员工充满employyee本人填写personalDetails表通过登录到他的账户编辑由管理)
现在,当我尝试发送个人的详细信息bean到休眠层首先我必须从员工表中获取雇员bean,然后调用setEmployee方法在personalDetails类和保存雇员bean在personalDetails并发送到休眠层保存在数据库中。
因此,从数据库获取员工bean并通过personalDetails bean再次发回会导致性能问题。
任何人都可以帮助这里澄清,同时保存数据在子表(PersonalDetails)是否真的强制传递父对象(Employee)?
=======================代码存储personalDetails ===============
@RequestMapping(value="addpersonal")
public ModelAndView addPersonalDetails(@ModelAttribute("personalDetails") PersonalDetails personalDetails) {
//personalDetails.setEmpid(1);
personalDetails.setCurrentAddress("niljyoti");
personalDetails.setMob("9405715872");
personalDetails.setPermenantAdress("address");
Employee e = empService.getEmployeebyUserName(uname);
personalDetails.setEmployee(e);
personalDetailsService.addPersonalDetails(personalDetails);
return new ModelAndView("home");
}
哪个代码导致其性能问题?发布代码而不是描述它。 –