我無法使用spring-data jpa使用spring-data rest獲取正確的url以顯示自我href。Spring data-rest錯誤資源href
所以我有一個學生類:
@Entity
@Table(name="student", schema="main")
public class Student {
@Id
private Long id;
...
...
@OneToOne
@JoinColumn(name = "id")
private StudentInformation studentInformation;
}
與相應的庫文件
@RepositoryRestResource(collectionResourceRel = "students", path = "students")
public interface StudentRepository extends PagingAndSortingRepository<Student, Long> {
}
還有一個StudentInformation類
@Entity
@Table(name="studentinformation", schema="main")
public class StudentInformation {
@Id
private Long id;
...
...
}
(其他屬性/ getter/setter方法省略)
與對應的庫
@RepositoryRestResource(collectionResourceRel = "studentinformation", path = "students/studentinformation")
public interface StudentInformationRepository extends CrudRepository<StudentInformation, Long> {
}
學生顯示,當我搜索一個通過id我所期望的,
{
"id": 1,
...
...
"_links": {
"self": {
"href": "http://localhost:8080/students/1"
},
"student": {
"href": "http://localhost:8080/students/1"
},
"studentinformation": {
"href": "http://localhost:8080/students/1/studentinformation"
}
}
}
除非我跟着從學生到studentInformation鏈接,studentInformation有自我鏈接不正確。
{
"id": 1,
...
...
"_links": {
"self": {
"href": "http://localhost:8080/students/studentinformation/1"
},
"studentinformation": {
"href": "http://localhost:8080/students/studentinformation/1"
}
}
}
如何獲取鏈接來閱讀 的 「href」: 「的http://localhost:8080/students/1/studentinformation 代替 的 」href「:」 http://localhost:8080/students/studentinformation/1「
感謝
感謝您的回覆。所以你說沒有辦法將自己的href網址中的資源堆疊起來? like, 'http:// localhost:8080/RESOURCE/{id}/SUB_RESOURCE' using @RepositoryRestResource?我將不得不定義我自己的定製REST控制器?這似乎很奇怪 – user2254140
不幸的是,你可以在我提供的鏈接中檢查,至少在存儲庫中沒有。如果你會找到辦法做到這一點 - 很高興知道。可以完成的方式是通過定義@RepositoryRestController和您的自定義實現並將其與您的資源相關聯。 –
如果您想使用存儲庫實現,您可以執行'SUB_RESOURCE/{ID}?RESOURCE_ID = {RESOURCE_ID}' –