My dao does "this.getEntityManager().persist(main);" or "this.getEntityManager().merge(playlist);" ... i dont know why but when gonna persist, the values from "order" are changed by "sons.size() + 1" for each object inside List<Sons>. Example: if i set value 1 for object1, and value 2 for object2. when i call persist() or merge(), new values are 3 for object1 and and 4 for object2.