Güzel nesne grafikleri oluşturmak için Jackson'un @JsonIdentityInfo
ek açıklamalarını kullanıyorum.@JsonIdentityInfo kullanıldığında null ID serileştirme sırasında
Ben (bir hazırda varlık da) Aşağıdaki nesne:
@Entity
@JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class,
property="id")
public class MemberFieldDef implements Def
{
@Id @GeneratedValue(generator="myGen")
private String id;
....
}
Bu sınıf bir nesne grafiği zaman parçası, seri hale getirme sırasında çalışıyor, ama yeni, geçici varlık göndermek istediğinizde
com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.lang.String out of VALUE_NULL token
at [Source: [email protected]; line: 1, column: 2] (through reference chain: net._95point2.sarbase.cohort.entity.MemberFieldDef["id"])
at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:148)
at com.fasterxml.jackson.databind.DeserializationContext.mappingException(DeserializationContext.java:762)
at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:59)
at com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:12)
at com.fasterxml.jackson.databind.deser.impl.ObjectIdValueProperty.deserializeSetAndReturn(ObjectIdValueProperty.java:90)
at com.fasterxml.jackson.databind.deser.impl.ObjectIdValueProperty.deserializeAndSet(ObjectIdValueProperty.java:82)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:306)
at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.deserializeWithObjectId(BeanDeserializerBase.java:1036)
at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:122)
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3066)
at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2221)
at org.springframework.http.converter.json.AbstractJackson2HttpMessageConverter.readJavaType(AbstractJackson2HttpMessageConverter.java:205)
: seri kaldırma başarısız olur
{
"id":null,
...
}
henüz bir kimliği olması ve sahip değildir Jackson, içinden
Yığın traması, Jackson'ın normal StringDeserializer'ı kullanmadığını gösterir. Bu, boş değer için null değerini döndürür, ancak boş değerlere izin vermiyor gibi görünen ObjectIdValueProperty
değerini kullanır.
Geçici nesneler için bir çözüm var mı?
Merhaba! Herhangi bir çözüm buldunuz mu? – LeoLozes
Sadece "NO_ID" veya -1 gibi bilinen bir yer tutucuyu, devam etmeden önce silinen tele göndermek için .... en iyisi değil: / –