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

È stato utile?

Soluzione

Questo potrebbe essere probabilmente quando si aggiorna la raccolta in ManyTomany potresti cancellare la raccolta e quindi aggiungere nuova raccolta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top