On Thu, Nov 17, 2022 at 9:32 AM Syed Iftekharuddin
<[email protected]> wrote:
>
> Hi,
> I have problem with Deserialization of entities with association.
> The entities are as follows:
>
> @JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, 
> property = "id", scope = Process.class)
> public class Process implements Serializable  {
>
>     // some properties here
>     private UUID id;
>
>     private List<User> users = new ArrayList<>();
>
>     private List<ProcessHistory> processHistorySet = new ArrayList<>();
>
>     private List<AnsweredQuestionnaire> answeredQuestionnaires = new 
> ArrayList<>();
> }
>
> public class ProcessHistory implements Serializable {
>     private UUID id;
>
>     @JsonIgnore
>     private Process process;
>
>     private User user;
> }
>
>
> @JsonIdentityInfo(generator= ObjectIdGenerators.UUIDGenerator.class, property 
> = "id", scope = AnsweredQuestionnaire.class)
> public class AnsweredQuestionnaire implements Serializable {
>
>     private UUID id;
>
>     private Process process;
> }
>
>
> @JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, 
> property = "id", scope = User.class)
> public class User implements Serializable {
>
>     private UUID id;
>
>     private List<Process> processes = new ArrayList<>();
> }
>
> Using the entities with association will cause some problem during 
> dserialization and cause the following error :
>
> com.fasterxml.jackson.databind.JsonMappingException: Already had POJO for id 
> (java.util.UUID)
> [[ObjectId: key=4c3cb331-bbbc-4105-bc3e-ddca3fea485d, 
> type=com.fasterxml.jackson.databind.deser.impl.PropertyBasedObjectIdGenerator,
>  scope=com.app.User]]
> (through reference chain: 
> com.app.User["processes"]->java.util.ArrayList[0]->com.app.Process["users"]->java.util.ArrayList[0]->com.app.User["id"])
> java.lang.RuntimeException: 
> com.fasterxml.jackson.databind.JsonMappingException: Already had POJO for id 
> (java.util.UUID)
> [[ObjectId: key=4c3cb331-bbbc-4105-bc3e-ddca3fea485d, 
> type=com.fasterxml.jackson.databind.deser.impl.PropertyBasedObjectIdGenerator,
>  scope=com.app.User]]
> (through reference chain: 
> com.app.User["processes"]->java.util.ArrayList[0]->com.app.Process["users"]->java.util.ArrayList[0]->com.app.User["id"])

The most likely explanation would be that the same id was included for
multiple User instances in incoming JSON.

But other than that, a reproduction (ideally minimal unit test) would
be needed to figure out if there is a real problem
or if this is due to some configuration problem or such.

-+ Tatu +-

-- 
You received this message because you are subscribed to the Google Groups 
"jackson-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jackson-user/CAL4a10gGPM%3Dg2obJ0aBEQzNOv%2BMSchDVHm2gNnEwBRshbxZZzg%40mail.gmail.com.

Reply via email to