@Manytomany: ROWTYPE est seulement Ajouter
-
28-09-2020 - |
Question
J'ai la personne et attribuez les deux classes, en bref:
@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...
}
Pour ces classes, les tables DB personnes, attributs, attribut_alloc, personnes_aud, attributes_aud et attribut_alloc_aud ont été générés correctement.
Tout fonctionne bien sauf l'audit des attributs en personne.Dans le tableau Attribute_ALLOC_AUD, les modifications (en supprimant par exemple un attribut et l'ajout d'une nouvelle à une personne) sont suivies correctement, mais toujours marquées avec le ROVTYPE Add.Par exemple:
- rév;personne_id;attribut_id; ROWTYPE
- 1;1;1; 0
- 1;1;2; 0
- 2;1;1; 0
- 2;1;5; 0
- 3;1;8; 0
conséquence est que la personne auditée dans la dernière révision a les attributs 1, 2, 5 et 8. correct serait seulement 8!
Qu'est-ce qui ne va pas? Merci beaucoup! Meilleures salutations
levi
La solution
Cela peut probablement être probablement lorsque vous mettez à jour la collection à Bestomany, vous pouvez supprimer la collection, puis ajouter une nouvelle collection.