以下のエンティティとリポジトリを持つ。私は私の関係にIDを置くことができなかった。あなたの助けを前もってありがとうリソースリンクrel with idスプリングデータrest
私のビルドからの関連する人工物。(春のブートバージョン1.5.4.RELEASE
を使用して)のGradle
compile('org.springframework.boot:spring-boot-starter-data-jpa')
compile('org.springframework.boot:spring-boot-starter-data-rest')
エンティティ
ストア
@Entity
@Table(name = "store")
class Store {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
long id
String description
@ManyToOne(optional=false, fetch = FetchType.EAGER)
Province province
}
省
の@Entity
@Table(name = "province")
class Province {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
long id
@NotNull
String name
}
リポジトリ
ストア
@RepositoryRestResource(collectionResourceRel = "stores", path = "stores")
interface StoreRepository extends PagingAndSortingRepository<Store, Long> {
}
省
@RepositoryRestResource(collectionResourceRel = "provinces", path = "provinces")
interface ProvinceRepository extends PagingAndSortingRepository<Province, Long> {
}
私はこの結果を期待してい 、基本的に
のhref
{
"stores": [
{
"id": 1,
"description": "desc1",
"_links": {
"self": {
"href": "http://localhost:8080/stores/1"
},
"store": {
"href": "http://localhost:8080/stores/1"
},
"province": {
"href": "http://localhost:8080/stores/1/province" ==> //NO ID!
}
}
}
]
//Simplified for simplicity sake
}
に
{
"stores": [
{
"id": 1,
"description": "desc1",
"_links": {
"self": {
"href": "http://localhost:8080/stores/1"
},
"store": {
"href": "http://localhost:8080/stores/1"
},
"province": {
"href": "http://localhost:8080/stores/1/province/1" ==> Expecting the url with provinceID since its many to one
}
}
}
]
//Simplified for simplicity sake
}
の実績 持っていない省同上省にリンクを注意してください結果予想予期している
この
"province": {
"href": "http://localhost:8080/stores/1/province/1" ==> Expecting the url with provinceID since its many to one
}
の代わりに、11時54分 でこの
"province": {
"href": "http://localhost:8080/stores/1/province" //NO province ID
}
編集6月21日私はのためにStore
にEAGER
にFetchType.LAZY
を変更しましたt
"http://localhost:8080/stores/1/province/1"
を行うためにrying
"org.springframework.http.converter.HttpMessageNotWritableException",
"message": "Could not write JSON: No serializer found for class org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer
リンクがProvinceテーブルに格納されていてストアテーブルに格納されていないため、この問題は@ManyToOneである可能性があります。しかし、私は正直です:私は以前この問題を見たことがない。 – benkuly