我正在尝试使用Spring Boot编写RESTful API,但无法找到一种在数据库中映射我的关系的方法。我有一个用户和一个报表表。每个用户可以有多个报告,并且一个报告由“ FROM USER”和“ TO USER”列组成,以指示谁发送了报告以及向谁发送了报告。我的用户ID是主键,对于报表,我正在使用AUTO INCREMENT生成REPORT ID作为主键。这是我的用户模型类-
@Entity
@Table (name = "user")
@EntityListeners(AuditingEntityListener.class)
public class User {
@Id
@Column(name = "id")
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String firstName;
private String lastName;
private String email;
private String password;
@OneToMany(mappedBy = "user",cascade = CascadeType.ALL)
private List<Report> reportReceivedList;
@OneToMany(mappedBy = "user", cascade = CascadeType.ALL)
private List<Report> reportSentList;
/* Getters and setters ..... */
}
这是我的报表模型类-
@Entity
@Table (name = "report")
@EntityListeners(AuditingEntityListener.class)
public class Report {
@Id
@Column (name = "id")
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
@ManyToOne()
@JoinColumn(name = "from_user_id")
private Long fromUserId; //THIS SHOULD BE FROM "USER" TABLE
@ManyToOne()
@JoinColumn(referencedColumnName = "to_user_id")
private Long toUserId; //THIS SHOULD BE FROM "USER" TABLE
@Temporal(TemporalType.DATE)
@CreatedDate
private Date createdAt;
private String observation;
private String context;
//Other variables and getters and setters .....
}
有人可以告诉我一种正确定义这种关系的方法吗?我当前的模型不起作用。另外,我希望删除用户后立即删除REPORT类中的行。谢谢!
答案 0 :(得分:0)
我终于通过如下更改User类来解决它-
form(method="POST" action="/mail")
case (type)
when 'slider'
block
.row
.col-md-8
.QapTcha
.bgSlider
.Slider.ui-draggable.ui-draggable-handle.e-resize.absolute
.text-center.text-white(style='cursor:e-resize')
i.fa.fa-chevron-right.btn-m-t-QapTcha.align-middle
input.d-none.submit(type='submit' name='submit' id=options.id submit=options.submit load=options.load)
div(style='fonts-size:11px')!=options.text
when 'button'
.row
.col-sm-12
.panel.panel-info
.panel-body
block
.panel-footer
.form-group
button.btn.btn-primary.btn-lg.btn-block.submit(id=options.inputId submit=options.submit load=options.load type='submit')!=options.text
default
+createForm(options, 'slider')
.feedback
,然后将我的Report类更改为-
@OneToMany(cascade = CascadeType.ALL, targetEntity = Report.class)
@JoinColumn(name = "to_user_id")
private List<Report> reportReceivedList;
@OneToMany(cascade = CascadeType.ALL, targetEntity = Report.class)
@JoinColumn(name = "from_user_id")
private List<Report> reportSentList;