我在使用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;
}

总结

我打算以后写得更详细一些,但姑且先这样吧。

广告
将在 10 秒后关闭
bannerAds