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>