@Manytomany: Reptipe è solo aggiunta
-
28-09-2020 - |
Domanda
Ho le due classi e l'attributo, in breve:
@Entity
@Indexed
@Table(name="persons")
public class Person {
private int id;
private List<Attribute> attributes;
@Id
@DocumentId
@GeneratedValue
@Column(name="person_id")
public int getId() {
return id;
}
@ManyToMany
@JoinTable(
name="attribute_alloc",
joinColumns={@JoinColumn(name="person_id")},
inverseJoinColumns={@JoinColumn(name="attribute_id")}
)
@Audited
public List<Attribute> getAttributes() {
return attributes;
}
// other properties, setters and getters...
}
@Entity
@Indexed
@Table(name="attributes")
public class Attribute {
private int id;
private List<Person> persons;
@Id
@DocumentId
@GeneratedValue
@Column(name="attribute_id")
public int getId() {
return id;
}
@ManyToMany(mappedBy="attributes")
public List<Attribute> getPersons() {
return persons;
}
// other properties, setters and getters...
}
.
Per queste classi le tabelle DB persone, attributi, attribute_alloc, persone_aud, attributes_aud e attribute_allloc_aiud sono stati generati correttamente.
Tutti funziona bene tranne l'audit per gli attributi di persona.Nell'attribuzione tabella_ALloc_Aud le modifiche (ad esempio la rimozione di un attributo e aggiungendo una nuova a una persona) sono tracciate correttamente, ma sempre contrassegnate con il registro aggiuntivo.Ad esempio:
- .
- rev;Person_id;attribute_id; ReptPe
- 1;1;1; 0
- 1;1;2; 0
- 2;1;1; 0
- 2;1;5; 0
- 3;1;8; 0
Consegnamento è che la persona controllata nell'ultima revisione ha gli attributi 1, 2, 5 e 8. corretti sarebbe solo 8!
Cosa c'è che non va? Molte grazie! Cordiali saluti
levi
Soluzione
Questo potrebbe essere probabilmente quando si aggiorna la raccolta in ManyTomany potresti cancellare la raccolta e quindi aggiungere nuova raccolta.