花太多的一天就此我失去了一些東西明顯與@ManyToOne和@OneToMany映射後。春天JPA通過REST
我有我想通過REST,項目類的又一個里程碑類揭露兩班。每個項目可以有許多相關的里程碑。
@Entity
public class Project {
@Id
@Column(name="project_id")
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
@OneToMany
private List<Milestone> milestones = new ArrayList<>();
private String name;
private String description;
// Getter and setters removed for brevity
}
@Entity
public class Milestone {
@Id
@Column(name="milestone_id")
@GeneratedValue(strategy = GenerationType.AUTO)
private long id;
private String name;
private String description;
@ManyToOne
@JoinColumn(name="project_id")
private Project project;
// Getter and setters removed for brevity
}
我的倉庫類:
public interface ProjectRepository extends JpaRepository<Project, Long> {
List<Project> findByName(@Param("name") String name);
}
public interface MilestoneRepository extends JpaRepository<Milestone, Long> {
List<Milestone> findByName(@Param("name") String name);
}
更新項目上的URI與後到localhost:8080 /項目/ 1 /里程碑是不行的,不過,我可以創建新的項目和里程碑沒有任何鏈接。
我的目標是發佈新項目條目,隨後發佈隨着時間的推移里程碑項目,這將更新工程類相關的里程碑的列表。
任何想法可能是錯誤的?
UPDATE:
使用Python的HTTPIE工具我做了以下創建初始的項目:
HTTP POST本地主機:8080 /項目名稱= 「測試」 描述= 「測試」
那我下面指定的一個里程碑:
HTTP POST本地主機:8080 /里程碑名稱= 「測試」 描述= 「測試」 項目= 「HTTP://本地主機:8080 /項目/ 1」
迴響應爲:
HTTP/1.1 201
Content-Type: application/json
Location: http://localhost:8080/milestones/1
Transfer-Encoding: chunked
{
"_links": {
"milestone": {
"href": "http://localhost:8080/milestones/1"
},
"project": {
"href":"http://localhost:8080/milestones/1/project"
},
"self":{
"href":"http://localhost:8080/milestones/1"
}
},
"description":"test",
"name":"test"
}
在數據庫中的PROJECT_ID列爲空
「不工作」包含零信息。 – Kayaman
儘管參考里程碑和項目類別,但兩個實體並未鏈接。發佈數據的作品,但所產生的project_milestones表和PROJECT_ID列是空 – ServerMonkey
爲什麼不告訴你,你實際上做的事情的代碼。 – Kayaman