我在使用Spring Boot时遇到的问题
实体相关
-
- @ OneToMany
- @ ManyToOne
这附近很混乱,并且事情经常不顺利。
OneToMany是什么意思
实体的一对多关系。
一个用户预订了5个项目。
在数据库中,用户表和日程表是分开的,
对于一个用户,有5个预订。
这是一对多的关系。
将用户表的主键和日程表的外键关联在一起的感觉。
实际使用时,感觉很方便,因为不需要每次都执行SQL查询。
@Entity
@Table(name="member")
@Data
@NoArgsConstructor
@AllArgsConstructor
@NotNull
public class User implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id; ←これがPK(Primary Key)
.............
@OneToMany(cascade=CascadeType.ALL, fetch=FetchType.EAGER,orphanRemoval=true)
@JoinColumn(name="user_id")
@OrderBy("date")
private List<Schedule> scheduleList;
}
ManyToOne是一种关系。
这是OneToMany的反向关系呢…
在上面的例子中,针对每个预约,都将有相应的信息记录着是谁进行了预约。
@Entity
@Table(name="schedule")
@Data
@NoArgsConstructor
@AllArgsConstructor
@NotNull
public class Schedule implements Serializable{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
@Column(name="user_id")
private int userId; ←これがFK(Foreign Key)
private String date;
private String time;
............
@ManyToOne
@JoinColumn(name="user_id",nullable = false,insertable=false, updatable=false)
private User user;
}
总结
我打算以后写得更详细一些,但姑且先这样吧。