Аудит карты дочерних объектов как значений с помощью Hibernate Envers - PullRequest
2 голосов
/ 05 марта 2012

У меня есть объект Parent, который ссылается на объект Child как значение на карте.Ключ на карте - enum (простой код приведен ниже).К сожалению, использование @AuditJoinTable с именем таблицы не создает ожидаемую таблицу parent_children_aud.

Поддерживается ли аудит ссылок на карты?Или я что-то не так делаю?

Использование Hibernate 3.6.0.

Родительский класс:

@Audited
public class Parent {

    private Long id;
    private Integer version;

    private Map<MyEnum, Child> mappedChildren;

    protected Parent() {}

    public Long getId() {
          return this.id;
     }

    public void setId(Long id) {
         this.id = id;
    }

    public Integer getVersion() {
        return version;
    }

    public void setVersion(Integer version) {
        this.version = version;
    }

    @AuditJoinTable(name = "parent_children_aud")
    public Map<MyEnum, Child> getMappedChildren() {
        return this.mappedChildren;
    }

    public void setMappedChildren(Map<MyEnum, TemplateStage> mappedChildren) {
        this.mappedChildren = mappedChildren;
    }
}

Дочерний класс:

@Audited
public class Child {

    private Long id;

    protected Child() {}

    public Long getId() {
          return this.id;
     }

    public void setId(Long id) {
         this.id = id;
    }

    public Integer getVersion() {
        return version;
    }

    public void setVersion(Integer version) {
        this.version = version;
    }
}

MyEnum:

public enum MyEnum { AAA, BBB, CCC; }

hbm.xml:

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-mapping PUBLIC
        -//Hibernate/Hibernate Mapping DTD 3.0//EN
        http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd>

<hibernate-mapping>

    <class name="Parent" table="parents">
        <cache usage="read-write"/>
        <id name="id" column="id">
            <generator class="native"/>
        </id>
        <version name="version" unsaved-value="negative"/>

        <map name="mappedChildren" cascade="all-delete-orphan" lazy="true">
            <cache usage="read-write"/>
            <key column="parent_id"/>
            <map-key type="MyEnum"/>
            <one-to-many class="Child"/>
        </map>

    </class>

    <class name="Child" table="children">
        <cache usage="read-write"/>
        <id name="id">
            <generator class="native"/>
        </id>
        <version name="version" unsaved-value="negative"/>
    </class>

</hibernate-mapping>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...