Auditing a map of child entities as values
yairs Mar 5, 2012 4:59 AMHi,
I have a Parent entity that refers a Child entity as a value in a map (see below). The key in the map is an enum. Unfortunately using @AuditJoinTable with table name doesn't create the expected "parent_children_aud" table. Is auditing for map references supported? Or is there something that I'm doing wrong?
Thanks,
Yair
Parent class:
@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; } }
Child class:
@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>