Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用Hibernate Envers将子实体映射审核为值_Java_Hibernate_Hibernate Envers - Fatal编程技术网

Java 使用Hibernate Envers将子实体映射审核为值

Java 使用Hibernate Envers将子实体映射审核为值,java,hibernate,hibernate-envers,Java,Hibernate,Hibernate Envers,我有一个父实体,它将子实体引用为映射中的值。映射中的键是一个枚举(请参见下面的简单代码)。不幸的是,使用带有表名的@AuditJoinTable无法创建所需的“parent\u children\u aud”表 是否支持对地图引用进行审核?还是我做错了什么 使用Hibernate3.6.0 父类: @Audited public class Parent { private Long id; private Integer version; private Map&l

我有一个
实体,它将
实体引用为映射中的值。映射中的键是一个枚举(请参见下面的简单代码)。不幸的是,使用带有表名的
@AuditJoinTable
无法创建所需的“parent\u children\u aud”表

是否支持对地图引用进行审核?还是我做错了什么

使用Hibernate3.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;
    }
}
髓鞘:

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>


是否创建了任何表?审计有用吗?或者您是否有异常?所有其他审计表都已创建(我有许多:))。没有例外……如果注释掉AuditJoinTable,是否为该关联创建了一个表?或者它被默默忽略?AuditJoinTable中的字段是什么:parent\u children\u aud?是否创建了任何表?审计有用吗?或者您是否有异常?所有其他审计表都已创建(我有许多:))。没有例外……如果注释掉AuditJoinTable,是否为该关联创建了一个表?或者它被默默地忽略了?AuditJoinTable中的字段是什么:parent\u children\u aud?
<?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>