【发布时间】:2017-10-28 18:20:05
【问题描述】:
我在 Thymeleaf 和 Springboot 有一个项目。
我需要知道在三个实体之间设置架构的最佳方式。
事件
项目
任务
关系
项目的事件是多对一
项目到事件是 OneToMany
Project to Task 是 OneToMany
项目的任务是多对一
实体
public Event() {}
@Id
private Long id
@ManyToOne(cascade = CascadeType.ALL)
private Project project;
public Project() {}
@Id
private Long id;
@OneToMany(mappedBy = "project", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private List<Task> tasks;
@OneToMany(mappedBy = "project")
private List<Event> event;
public Task() {}
@Id
private Long id;
@ManyToOne
private Project project;
就目前而言:
- 可以在事件 UI 上创建事件并正确保存。
- 项目 UI 屏幕(包含来自 Event 的一些信息)可以创建项目并在同一个 UI 上创建任务,但单击提交后,所有信息都会进入数据库,但任务表获取任务但 FK project_id 为空。
在获取和发布项目的控制器上,我将 Event 传递到模型中,因为我需要计划屏幕上 Event 的一些信息。
有没有更好的方法在计划 UI 上显示来自 Event 但 CRUD 计划的一些信息。 为什么 FK project_id 为空?
更新
我试过了:
public Task() {}
@Id
private Long id;
@ManyToOne(optional = false)
@JoinColumn(name = "project_id")
private Project project;
仍然没有在任务表上获得 project_id。
【问题讨论】:
-
关于问题的 UI 部分:如何设计 UI 是您的业务,它应该尽可能对用户有所帮助,而与您的后端架构无关。您正在为用户构建 UI,而不是为您的服务器构建 UI,所以请设身处地为他着想。但是您在页面上提交所有信息似乎很奇怪。通常,REST 与 Ajax 调用齐头并进
标签: hibernate spring-boot thymeleaf