Отношения между ними-один на один:
Код: Выделить всё
@Data
@Entity
public class Audit {
@Id
private UUID id;
private String name;
@OneToOne(mappedBy = "audit", cascade = CascadeType.ALL, optional = false)
private Plan plan;
@OneToOne(mappedBy = "audit", cascade = CascadeType.ALL, optional = false)
private Checklist checklist;
@OneToOne(mappedBy = "audit", cascade = CascadeType.ALL, optional = false)
private Report report;
@PrePersist
protected void init() {
plan = new Plan();
checklist = new Checklist();
report = new Report();
plan.setAudit(this);
checklist.setAudit(this);
report.setAudit(this);
}
}
@Data
@Entity
public class Plan {
@OneToOne(optional = false)
private Audit audit;
@Id
private UUID id;
private String name;
}
@Data
@Entity
public class Checklist {
@OneToOne(optional = false)
private Audit audit;
@Id
private UUID id;
private String name;
}
@Data
@Entity
public class Report {
@OneToOne(optional = false)
private Audit audit;
@Id
private UUID id;
private String name;
}
< /code>
конечные точки, экспортируемые с помощью Spring Data Rest для меня, следующие: < /p>
// curl http://127.0.0.1:8080/profile
{
"_links" : {
"self" : {
"href" : "http://127.0.0.1:8080/profile"
},
"audits" : {
"href" : "http://127.0.0.1:8080/profile/audits"
},
"plans" : {
"href" : "http://127.0.0.1:8080/profile/plans"
},
"checklists" : {
"href" : "http://127.0.0.1:8080/profile/checklists"
},
"reports" : {
"href" : "http://127.0.0.1:8080/profile/reports"
}
}
}
// curl http://127.0.0.1:8080/audits/6d7ea123-1709-409c-8352-893d4a082d40
{
"name" : "Audit 001",
"_links" : {
"self" : {
"href" : "http://127.0.0.1:8080/audits/6d7ea123-1709-409c-8352-893d4a082d40"
},
"audit" : {
"href" : "http://127.0.0.1:8080/audits/6d7ea123-1709-409c-8352-893d4a082d40"
},
"plan" : {
"href" : "http://127.0.0.1:8080/audits/6d7ea123-1709-409c-8352-893d4a082d40/plan"
},
"checklist" : {
"href" : "http://127.0.0.1:8080/audits/6d7ea123-1709-409c-8352-893d4a082d40/checklist"
},
"report" : {
"href" : "http://127.0.0.1:8080/audits/6d7ea123-1709-409c-8352-893d4a082d40/report"
}
}
}
// curl http://127.0.0.1:8080/profile
{
"_links" : {
"self" : {
"href" : "http://127.0.0.1:8080/profile"
},
"audits" : {
"href" : "http://127.0.0.1:8080/profile/audits"
}
}
}
// curl http://127.0.0.1:8080/audits/6d7ea123-1 ... 3d4a082d40
{
"name" : "Audit 001",
"_links" : {
"self" : {
"href" : "http://127.0.0.1:8080/audits/6d7ea123-1 ... 3d4a082d40"
},
"audit" : {
"href" : "http://127.0.0.1:8080/audits/6d7ea123-1 ... 3d4a082d40"
},
"plan" : {
"href" : "http://127.0.0.1:8080/audits/6d7ea123-1 ... 82d40/plan"
},
"checklist" : {
"href" : "http://127.0.0.1:8080/audits/6d7ea123-1 ... /checklist"
},
"report" : {
"href" : "http://127.0.0.1:8080/audits/6d7ea123-1 ... d40/report"
}
}
}
< /code>
это возможно (за исключением полной настройки всех конечных точек)? < /p>
Поскольку я новичок, мое выражение может быть не очень профессиональным, пожалуйста, простите меня. Если кто -то сможет помочь мне улучшить описание, я буду очень благодарен за вашу помощь
Подробнее здесь: https://stackoverflow.com/questions/796 ... -data-rest