我能找到解决办法吗?
预订 -键 -什么 -员工编号 -room_ref_key
员工 -键 -东西
房间 -键 -东西
答案 0 :(得分:0)
对于一对一的预订员工和预订房间的映射对我来说似乎很不合逻辑。
一个房间和员工都应该有一个以上的预订。
我认为,您应该使用多对一映射而不是一对一。
此任务最简单的解决方案是:
预订类:
@Entity
public class Booking {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long bookingId;
@ManyToOne
@JoinColumn(name = "employee_id")
private Employee employee;
@ManyToOne
@JoinColumn(name = "room_id")
private Room room;
// other fields
// getters and setters
}
Employee类:
@Entity
public class Employee {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long employeeId;
// other fields
// getters and setters
}
房间类别:
@Entity
public class Room {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long roomId;
// other fields
// getters and setters
}
此代码段中将发生什么:
@Entity告诉Hibernate此类应该是一个表。
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)告诉休眠此字段是表的唯一标识符。
@ManyToOne指定两个实体之间的多对一关系。
@JoinColumn指定用于加入实体关联的列。
但是,如果要实现一对一映射,则应使用@OneToOne注释而不是@ManyToOne
我强烈建议您查看休眠参考指南: https://docs.jboss.org/hibernate/orm/5.4/userguide/html_single/Hibernate_User_Guide.html
希望这对您有用!