2013-11-28 2 views
0

감사 테이블 생성에 어려움이 있습니다. 두 가지 컬렉션 일대 다 관계가 있습니다. 한 번은 역행이고, 다른 것은 아닙니다. auditjointable 주석은 반전되지 않은 주석에 대해서는 작동하지만 반대로 적용되지 않는 주석에는 작동하지 않습니다.JPA Hibernate 및 AuditJoinTable

내 코드

@Entity 
@Audited 
@AuditTable(value = "DDD") 
public class Department { 
    @Id 
    @GeneratedValue(strategy= GenerationType.IDENTITY) 
    @Audited 
    private int id; 
    private int age; 

    public int getAge() { 
     return age; 
    } 

    public void setAge(int age) { 
     this.age = age; 
    } 
    private String name; 

    @OneToMany(targetEntity = Professor.class,cascade = CascadeType.ALL) 
    @JoinColumn(name = "dept_id") 
    @AuditJoinTable(name = "abc") 
    private java.util.Collection<Professor> employees; 

    @OneToMany(targetEntity = Address.class, mappedBy = "department")<==inverse relation 
    @AuditJoinTable(name = "def") 
//I tried commenting this out and let the inverse side AuditJoinTable annotation, no luck 
    private java.util.Collection<Address> addresses; 
//Getters and setters remove to reduce clutter 
} 

주소

@Entity 
    @Audited 
    public class Address { 
     @Id 
     @GeneratedValue(strategy= GenerationType.IDENTITY) 
     private int id; 
     @Column 
     private String name; 

     @ManyToOne(cascade = CascadeType.ALL) 
     @AuditJoinTable(name = "def") 
     private Department department; 

교수

@Entity 
@Audited 
public class Professor { 
    @Id 
    @GeneratedValue(strategy= GenerationType.IDENTITY) 
    private int id; 
    @Column 
    private String name; 
    private long salary; 

    @ManyToOne 
    @JoinColumn(name = "dept_id") 
    private Department department; 

} 

내가 hibernate.hbm2ddl.auto "DEF"autdit 테이블을 사용하여 scema를 만들 생성되지 않습니다. 그러나 "abc"감사 결합이 생성되고 직원 컬렉션이 업데이트되면 감사 항목이 기록됩니다. 3.6.9.Final JPA는 작업을 얻을 수있는 방법을 찾지 못했습니다 여전히 파고의 많은 후 1.0

모든 포인터는

답변

0

확인 평가 -

나는 최대 절전/최대 절전 모드-envers을 사용하고 있습니다 . 그러나 Address 엔티티의 감사 테이블에는 Department의 외래 키를 추적하는 열이 있습니다. 나는 그런 다음

"hibernate.ejb.event.post-update"

을 사용할 수있는 제거는 컬렉션에 대한 업데이트가 추적되고 주소 감사 테이블이 업데이트됩니다.