2016-04-12 25 views
2

bağlamaz. CarSharing sınıfı çalışıyor, sorun sadece Person sınıfında oluyor.@jsonbackreference İki sınıf var ilişkiyi

Kişinin alınması, carSharing özelliğinin göz ardı edilmesi gibi görünüyor. Sunucuya geri dönülürken null olduğu gibi, güncelleştirme person tablosundaki referansın carsharing_id bağlantısını kaldırmasıdır.

Döngüyü durdurmak iyidir, ancak Person sınıfında bulunan carSharing ürününe de ihtiyacım var.

Bunu nasıl çözeceğiniz konusunda bir fikriniz var mı?

cevap

1

Jackson 2.x kullanıyorsanız, size Ek Açıklama @JsonIdentityInfo kullanabilirsiniz: Nesne Kimlik bilgileri/seri JSON'dan için/özellik değerini serisini nasıl belirlenmesi için kullanılacak olup olmadığı

(ve diğer veri formatları) @JsonIdentityInfo ek açıklamasının varlığına (veya eksikliğine) dayalı olacaktır.
bkz: Örneğin http://wiki.fasterxml.com/JacksonFeatureObjectIdentity

, sınıfı CarSharing açıklama ise:

import com.fasterxml.jackson.annotation.JsonIdentityInfo; 
import com.fasterxml.jackson.annotation.ObjectIdGenerators; 
//... 
@JsonIdentityInfo(generator=ObjectIdGenerators.IntSequenceGenerator.class, property="@id") 
public class CarSharing { 

bir kişinin (bu sınıfa bir alan adı eklendi) JSON sonucudur:

{ 
    "carSharing": { 
     "@id": 1, 
     "id": 12345, 
     "owner": { 
     "carSharing": 1, 
     "name": "owner" 
     }, 
     "members": [ 
     { 
      "carSharing": 1, 
      "name": "owner" 
     }, 
     { 
      "carSharing": 1, 
      "name": "driver2" 
     }, 
     { 
      "carSharing": 1, 
      "name": "driver" 
     } 
     ] 
    }, 
    "name": "driver2" 
    } 

Ve CarSharing örneği id=12345 ile:

{ 
    "@id": 1, 
    "id": 12345, 
    "owner": { 
     "carSharing": 1, 
     "name": "owner" 
    }, 
    "members": [ 
     { 
     "carSharing": 1, 
     "name": "owner" 
     }, 
     { 
     "carSharing": 1, 
     "name": "driver2" 
     }, 
     { 
     "carSharing": 1, 
     "name": "driver" 
     } 
    ] 
    } 

@id alanı, jackson'dan üretilir. Başvurulan nesne serileştirilmemişse, başvurulan nesnenin değeri @id olarak ayarlanır.

+0

Teşekkürler şimdi çalışıyor. – user2316219