花太多的一天就此我失去了一些东西明显与@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