у меня есть два класса Person и Attribut, короче:
@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...
}
Для этих классов таблицы db person, attribute, attribute_alloc, Person_aud, attribute_aud и attribute_alloc_aud были сгенерированы правильно.
Все работает хорошо, кроме аудита для атрибутов в лице.В таблице attribute_alloc_aud изменения (например, удаление атрибута и добавление нового к человеку) отслеживаются правильно, но всегда помечаются REVTYPE ADD.Например:
- REV;person_id;attribute_id; REVTYPE
- 1;1;1; 0
- 1;1;2; 0
- 2;1;1; 0
- 2;1;5; 0
- 3;1;8; 0
Следствием является то, что проверяемое лицо в последней ревизии имеет атрибуты 1, 2, 5 и 8. Правильно будет только 8!
Чтонеправильно?Большое спасибо!С наилучшими пожеланиями
Леви