[hibernate-commits] Hibernate SVN: r19482 - in core/branches/Branch_3_5/envers: src/main/java/org/hibernate/envers/configuration/metadata and 11 other directories.
hibernate-commits at lists.jboss.org
hibernate-commits at lists.jboss.org
Wed May 12 15:12:14 EDT 2010
Author: adamw
Date: 2010-05-12 15:12:12 -0400 (Wed, 12 May 2010)
New Revision: 19482
Added:
core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/
core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/DetailSubclass.java
core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/DetailSubclass2.java
core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/DetailSuperclass.java
core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/ManyToManyInverseToSuperclassTest.java
core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/Master.java
core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/
core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/DetailSubclass.java
core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/DetailSubclass2.java
core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/DetailSuperclass.java
core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/Master.java
core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/OneToManyInverseToSuperclassTest.java
core/branches/Branch_3_5/envers/src/test/resources/mappings/manyToMany/
core/branches/Branch_3_5/envers/src/test/resources/mappings/manyToMany/inverseToSuperclass/
core/branches/Branch_3_5/envers/src/test/resources/mappings/manyToMany/inverseToSuperclass/mappings.hbm.xml
core/branches/Branch_3_5/envers/src/test/resources/mappings/oneToMany/
core/branches/Branch_3_5/envers/src/test/resources/mappings/oneToMany/inverseToSuperclass/
core/branches/Branch_3_5/envers/src/test/resources/mappings/oneToMany/inverseToSuperclass/mappings.hbm.xml
Removed:
core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/DetailSubclass.java
core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/DetailSubclass2.java
core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/DetailSuperclass.java
core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/ManyToManyInverseToSuperclassTest.java
core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/Master.java
core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/DetailSubclass.java
core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/DetailSubclass2.java
core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/DetailSuperclass.java
core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/Master.java
core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/OneToManyInverseToSuperclassTest.java
core/branches/Branch_3_5/envers/src/test/resources/mappings/manyToMany/inverseToSuperclass/
core/branches/Branch_3_5/envers/src/test/resources/mappings/manyToMany/inverseToSuperclass/mappings.hbm.xml
core/branches/Branch_3_5/envers/src/test/resources/mappings/oneToMany/inverseToSuperclass/
core/branches/Branch_3_5/envers/src/test/resources/mappings/oneToMany/inverseToSuperclass/mappings.hbm.xml
Modified:
core/branches/Branch_3_5/envers/pom.xml
core/branches/Branch_3_5/envers/src/main/java/org/hibernate/envers/configuration/metadata/BasicMetadataGenerator.java
core/branches/Branch_3_5/envers/src/main/java/org/hibernate/envers/configuration/metadata/CollectionMetadataGenerator.java
core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/entities/customtype/CompositeTestUserType.java
core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/entities/customtype/ParametrizedTestUserType.java
core/branches/Branch_3_5/envers/src/test/resources/testng.xml
Log:
svn merge -r 19255:19481 https://svn.jboss.org/repos/hibernate/core/trunk/envers .
Modified: core/branches/Branch_3_5/envers/pom.xml
===================================================================
--- core/branches/Branch_3_5/envers/pom.xml 2010-05-12 18:27:16 UTC (rev 19481)
+++ core/branches/Branch_3_5/envers/pom.xml 2010-05-12 19:12:12 UTC (rev 19482)
@@ -6,7 +6,7 @@
<parent>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-parent</artifactId>
- <version>3.5.2-SNAPSHOT</version>
+ <version>3.6.0-SNAPSHOT</version>
<relativePath>../parent/pom.xml</relativePath>
</parent>
Modified: core/branches/Branch_3_5/envers/src/main/java/org/hibernate/envers/configuration/metadata/BasicMetadataGenerator.java
===================================================================
--- core/branches/Branch_3_5/envers/src/main/java/org/hibernate/envers/configuration/metadata/BasicMetadataGenerator.java 2010-05-12 18:27:16 UTC (rev 19481)
+++ core/branches/Branch_3_5/envers/src/main/java/org/hibernate/envers/configuration/metadata/BasicMetadataGenerator.java 2010-05-12 19:12:12 UTC (rev 19482)
@@ -33,10 +33,9 @@
import org.hibernate.mapping.Column;
import org.hibernate.mapping.SimpleValue;
import org.hibernate.mapping.Value;
+import org.hibernate.type.BasicType;
import org.hibernate.type.CompositeCustomType;
import org.hibernate.type.CustomType;
-import org.hibernate.type.ImmutableType;
-import org.hibernate.type.MutableType;
import org.hibernate.type.Type;
/**
@@ -48,7 +47,7 @@
Value value, SimpleMapperBuilder mapper, boolean insertable, boolean key) {
Type type = value.getType();
- if (type instanceof ImmutableType || type instanceof MutableType) {
+ if ( type instanceof BasicType ) {
addSimpleValue(parent, propertyAuditingData, value, mapper, insertable, key);
} else if (type instanceof CustomType || type instanceof CompositeCustomType) {
addCustomValue(parent, propertyAuditingData, value, mapper, insertable, key);
Modified: core/branches/Branch_3_5/envers/src/main/java/org/hibernate/envers/configuration/metadata/CollectionMetadataGenerator.java
===================================================================
--- core/branches/Branch_3_5/envers/src/main/java/org/hibernate/envers/configuration/metadata/CollectionMetadataGenerator.java 2010-05-12 18:27:16 UTC (rev 19481)
+++ core/branches/Branch_3_5/envers/src/main/java/org/hibernate/envers/configuration/metadata/CollectionMetadataGenerator.java 2010-05-12 19:12:12 UTC (rev 19482)
@@ -80,6 +80,7 @@
/**
* Generates metadata for a collection-valued property.
* @author Adam Warski (adam at warski dot org)
+ * @author Hern�n Chanfreau
*/
public final class CollectionMetadataGenerator {
private static final Logger log = LoggerFactory.getLogger(CollectionMetadataGenerator.class);
@@ -533,7 +534,6 @@
return middleEntityXmlId;
}
- @SuppressWarnings({"unchecked"})
private String getMappedBy(Collection collectionValue) {
PersistentClass referencedClass = ((OneToMany) collectionValue.getElement()).getAssociatedClass();
@@ -543,8 +543,31 @@
return auditMappedBy;
}
+ // searching in referenced class
+ String mappedBy = this.searchMappedBy(referencedClass, collectionValue);
+
+ if(mappedBy == null) {
+ log.debug("Going to search the mapped by attribute for " + propertyName + " in superclasses of entity: " + referencedClass.getClassName());
+
+ PersistentClass tempClass = referencedClass;
+ while ((mappedBy == null) && (tempClass.getSuperclass() != null)) {
+ log.debug("Searching in superclass: " + tempClass.getSuperclass().getClassName());
+ mappedBy = this.searchMappedBy(tempClass.getSuperclass(), collectionValue);
+ tempClass = tempClass.getSuperclass();
+ }
+ }
+
+ if(mappedBy == null) {
+ throw new MappingException("Unable to read the mapped by attribute for " + propertyName + " in "
+ + referencedClass.getClassName() + "!");
+ }
+
+ return mappedBy;
+ }
+
+ @SuppressWarnings({"unchecked"})
+ private String searchMappedBy(PersistentClass referencedClass, Collection collectionValue) {
Iterator<Property> assocClassProps = referencedClass.getPropertyIterator();
-
while (assocClassProps.hasNext()) {
Property property = assocClassProps.next();
@@ -552,13 +575,10 @@
collectionValue.getKey().getColumnIterator())) {
return property.getName();
}
- }
-
- throw new MappingException("Unable to read the mapped by attribute for " + propertyName + " in "
- + referencingEntityName + "!");
+ }
+ return null;
}
- @SuppressWarnings({"unchecked"})
private String getMappedBy(Table collectionTable, PersistentClass referencedClass) {
// If there's an @AuditMappedBy specified, returning it directly.
String auditMappedBy = propertyAuditingData.getAuditMappedBy();
@@ -566,6 +586,31 @@
return auditMappedBy;
}
+ // searching in referenced class
+ String mappedBy = this.searchMappedBy(referencedClass, collectionTable);
+
+ // not found on referenced class, searching on superclasses
+ if(mappedBy == null) {
+ log.debug("Going to search the mapped by attribute for " + propertyName + " in superclases of entity: " + referencedClass.getClassName());
+
+ PersistentClass tempClass = referencedClass;
+ while ((mappedBy == null) && (tempClass.getSuperclass() != null)) {
+ log.debug("Searching in superclass: " + tempClass.getSuperclass().getClassName());
+ mappedBy = this.searchMappedBy(tempClass.getSuperclass(), collectionTable);
+ tempClass = tempClass.getSuperclass();
+ }
+ }
+
+ if(mappedBy == null) {
+ throw new MappingException("Unable to read the mapped by attribute for " + propertyName + " in "
+ + referencedClass.getClassName() + "!");
+ }
+
+ return mappedBy;
+ }
+
+ @SuppressWarnings({"unchecked"})
+ private String searchMappedBy(PersistentClass referencedClass, Table collectionTable) {
Iterator<Property> properties = referencedClass.getPropertyIterator();
while (properties.hasNext()) {
Property property = properties.next();
@@ -576,9 +621,8 @@
return property.getName();
}
}
- }
-
- throw new MappingException("Unable to read the mapped by attribute for " + propertyName + " in "
- + referencingEntityName + "!");
+ }
+ return null;
}
+
}
Modified: core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/entities/customtype/CompositeTestUserType.java
===================================================================
--- core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/entities/customtype/CompositeTestUserType.java 2010-05-12 18:27:16 UTC (rev 19481)
+++ core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/entities/customtype/CompositeTestUserType.java 2010-05-12 19:12:12 UTC (rev 19482)
@@ -28,9 +28,10 @@
import java.sql.ResultSet;
import java.sql.SQLException;
-import org.hibernate.Hibernate;
import org.hibernate.HibernateException;
import org.hibernate.engine.SessionImplementor;
+import org.hibernate.type.IntegerType;
+import org.hibernate.type.StringType;
import org.hibernate.type.Type;
import org.hibernate.usertype.CompositeUserType;
@@ -44,7 +45,7 @@
}
public Type[] getPropertyTypes() {
- return new Type[] { Hibernate.STRING, Hibernate.INTEGER };
+ return new Type[] { StringType.INSTANCE, IntegerType.INSTANCE };
}
public Object getPropertyValue(final Object component, final int property) throws HibernateException {
@@ -106,8 +107,8 @@
throws HibernateException, SQLException
{
if (value == null) {
- st.setNull(index, Hibernate.STRING.sqlType());
- st.setNull(index + 1, Hibernate.INTEGER.sqlType());
+ st.setNull(index, StringType.INSTANCE.sqlType());
+ st.setNull(index + 1, IntegerType.INSTANCE.sqlType());
} else {
final Component comp = (Component) value;
st.setString(index, comp.getProp1());
Modified: core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/entities/customtype/ParametrizedTestUserType.java
===================================================================
--- core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/entities/customtype/ParametrizedTestUserType.java 2010-05-12 18:27:16 UTC (rev 19481)
+++ core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/entities/customtype/ParametrizedTestUserType.java 2010-05-12 19:12:12 UTC (rev 19482)
@@ -32,6 +32,7 @@
import org.hibernate.Hibernate;
import org.hibernate.HibernateException;
+import org.hibernate.type.StringType;
import org.hibernate.usertype.ParameterizedType;
import org.hibernate.usertype.UserType;
@@ -54,7 +55,7 @@
}
public Object nullSafeGet(ResultSet rs, String[] names, Object owner) throws HibernateException, SQLException {
- return Hibernate.STRING.nullSafeGet(rs, names[0]);
+ return StringType.INSTANCE.nullSafeGet( rs, names[0] );
}
public void nullSafeSet(PreparedStatement st, Object value, int index) throws HibernateException, SQLException {
@@ -66,10 +67,11 @@
if (!v.endsWith(param2)) {
v = v + param2;
}
- Hibernate.STRING.nullSafeSet(st, v, index);
- } else {
- Hibernate.STRING.nullSafeSet(st, value, index);
+ StringType.INSTANCE.nullSafeSet(st, v, index);
}
+ else {
+ StringType.INSTANCE.nullSafeSet( st, null, index );
+ }
}
public int[] sqlTypes() {
Copied: core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass (from rev 19481, core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass)
Deleted: core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/DetailSubclass.java
===================================================================
--- core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/DetailSubclass.java 2010-05-12 18:27:16 UTC (rev 19481)
+++ core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/DetailSubclass.java 2010-05-12 19:12:12 UTC (rev 19482)
@@ -1,26 +0,0 @@
-package org.hibernate.envers.test.integration.manytomany.inverseToSuperclass;
-
-/**
- * @author Hern�n Chanfreau
- *
- */
-import org.hibernate.envers.Audited;
-
- at Audited
-public class DetailSubclass extends DetailSuperclass {
-
- private String str2;
-
- public DetailSubclass() {
-
- }
-
- public String getStr2() {
- return str2;
- }
-
- public void setStr2(String str2) {
- this.str2 = str2;
- }
-
-}
Copied: core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/DetailSubclass.java (from rev 19481, core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/DetailSubclass.java)
===================================================================
--- core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/DetailSubclass.java (rev 0)
+++ core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/DetailSubclass.java 2010-05-12 19:12:12 UTC (rev 19482)
@@ -0,0 +1,26 @@
+package org.hibernate.envers.test.integration.manytomany.inverseToSuperclass;
+
+/**
+ * @author Hern�n Chanfreau
+ *
+ */
+import org.hibernate.envers.Audited;
+
+ at Audited
+public class DetailSubclass extends DetailSuperclass {
+
+ private String str2;
+
+ public DetailSubclass() {
+
+ }
+
+ public String getStr2() {
+ return str2;
+ }
+
+ public void setStr2(String str2) {
+ this.str2 = str2;
+ }
+
+}
Deleted: core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/DetailSubclass2.java
===================================================================
--- core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/DetailSubclass2.java 2010-05-12 18:27:16 UTC (rev 19481)
+++ core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/DetailSubclass2.java 2010-05-12 19:12:12 UTC (rev 19482)
@@ -1,26 +0,0 @@
-package org.hibernate.envers.test.integration.manytomany.inverseToSuperclass;
-
-/**
- * @author Hern�n Chanfreau
- *
- */
-import org.hibernate.envers.Audited;
-
- at Audited
-public class DetailSubclass2 extends DetailSubclass {
-
- private String str3;
-
- public DetailSubclass2() {
-
- }
-
- public String getStr3() {
- return str3;
- }
-
- public void setStr3(String str3) {
- this.str3 = str3;
- }
-
-}
Copied: core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/DetailSubclass2.java (from rev 19481, core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/DetailSubclass2.java)
===================================================================
--- core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/DetailSubclass2.java (rev 0)
+++ core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/DetailSubclass2.java 2010-05-12 19:12:12 UTC (rev 19482)
@@ -0,0 +1,26 @@
+package org.hibernate.envers.test.integration.manytomany.inverseToSuperclass;
+
+/**
+ * @author Hern�n Chanfreau
+ *
+ */
+import org.hibernate.envers.Audited;
+
+ at Audited
+public class DetailSubclass2 extends DetailSubclass {
+
+ private String str3;
+
+ public DetailSubclass2() {
+
+ }
+
+ public String getStr3() {
+ return str3;
+ }
+
+ public void setStr3(String str3) {
+ this.str3 = str3;
+ }
+
+}
Deleted: core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/DetailSuperclass.java
===================================================================
--- core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/DetailSuperclass.java 2010-05-12 18:27:16 UTC (rev 19481)
+++ core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/DetailSuperclass.java 2010-05-12 19:12:12 UTC (rev 19482)
@@ -1,38 +0,0 @@
-package org.hibernate.envers.test.integration.manytomany.inverseToSuperclass;
-
-/**
- * @author Hern�n Chanfreau
- *
- */
-import java.util.List;
-
-import org.hibernate.envers.Audited;
-
- at Audited
-public class DetailSuperclass {
-
- private long id;
-
- private List<Master> masters;
-
- public DetailSuperclass() {
-
- }
-
- public long getId() {
- return id;
- }
-
- public void setId(long id) {
- this.id = id;
- }
-
- public List<Master> getMasters() {
- return masters;
- }
-
- public void setMasters(List<Master> masters) {
- this.masters = masters;
- }
-
-}
Copied: core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/DetailSuperclass.java (from rev 19481, core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/DetailSuperclass.java)
===================================================================
--- core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/DetailSuperclass.java (rev 0)
+++ core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/DetailSuperclass.java 2010-05-12 19:12:12 UTC (rev 19482)
@@ -0,0 +1,38 @@
+package org.hibernate.envers.test.integration.manytomany.inverseToSuperclass;
+
+/**
+ * @author Hern�n Chanfreau
+ *
+ */
+import java.util.List;
+
+import org.hibernate.envers.Audited;
+
+ at Audited
+public class DetailSuperclass {
+
+ private long id;
+
+ private List<Master> masters;
+
+ public DetailSuperclass() {
+
+ }
+
+ public long getId() {
+ return id;
+ }
+
+ public void setId(long id) {
+ this.id = id;
+ }
+
+ public List<Master> getMasters() {
+ return masters;
+ }
+
+ public void setMasters(List<Master> masters) {
+ this.masters = masters;
+ }
+
+}
Deleted: core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/ManyToManyInverseToSuperclassTest.java
===================================================================
--- core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/ManyToManyInverseToSuperclassTest.java 2010-05-12 18:27:16 UTC (rev 19481)
+++ core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/ManyToManyInverseToSuperclassTest.java 2010-05-12 19:12:12 UTC (rev 19482)
@@ -1,114 +0,0 @@
-package org.hibernate.envers.test.integration.manytomany.inverseToSuperclass;
-
-import java.io.File;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.util.ArrayList;
-
-import javax.persistence.EntityManager;
-
-import org.hibernate.ejb.Ejb3Configuration;
-import org.hibernate.envers.test.AbstractEntityTest;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-/**
- * @author Hern�n Chanfreau
- *
- */
-
-public class ManyToManyInverseToSuperclassTest extends AbstractEntityTest {
-
- private long m1_id;
-
- public void configure(Ejb3Configuration cfg) {
- try {
- URL url = Thread.currentThread().getContextClassLoader()
- .getResource(
- "mappings/manyToMany/inverseToSuperclass/mappings.hbm.xml");
- cfg.addFile(new File(url.toURI()));
- } catch (URISyntaxException e) {
- throw new RuntimeException(e);
- }
- }
-
- @BeforeClass(dependsOnMethods = "init")
- public void initData() {
- EntityManager em = getEntityManager();
-
- Master m1 = new Master();
- DetailSubclass det1 = new DetailSubclass2();
-
- // Revision 1
- em.getTransaction().begin();
-
- det1.setStr2("detail 1");
-
- m1.setStr("master");
- m1.setItems(new ArrayList<DetailSubclass>());
- m1.getItems().add(det1);
-
- det1.setMasters(new ArrayList<Master>());
- det1.getMasters().add(m1);
-
- em.persist(m1);
- em.getTransaction().commit();
- m1_id = m1.getId();
-
- // Revision 2
-// em.getTransaction().begin();
-//
-// m1 = em.find(Master.class, m1_id);
-//
-// det2.setStr2("detail 2");
-// det2.setParent(m1);
-// m1.getItems().add(det2);
-// em.getTransaction().commit();
-//
-// // Revision 3
-// em.getTransaction().begin();
-//
-// m1 = em.find(Master.class, m1_id);
-// m1.setStr("new master");
-//
-// det1 = m1.getItems().get(0);
-// det1.setStr2("new detail");
-// DetailSubclass det3 = new DetailSubclass2();
-// det3.setStr2("detail 3");
-// det3.setParent(m1);
-//
-// m1.getItems().get(1).setParent(null);
-// // m1.getItems().remove(1);
-// m1.getItems().add(det3);
-//
-// em.persist(m1);
-// em.getTransaction().commit();
-//
-// // Revision 4
-// em.getTransaction().begin();
-//
-// m1 = em.find(Master.class, m1_id);
-//
-// det1 = m1.getItems().get(0);
-// det1.setParent(null);
-// // m1.getItems().remove(det1);
-//
-// em.persist(m1);
-// em.getTransaction().commit();
-
- }
-
- @Test
- public void testHistoryExists() {
- Master rev1_1 = getAuditReader().find(Master.class, m1_id, 1);
- Master rev1_2 = getAuditReader().find(Master.class, m1_id, 2);
- Master rev1_3 = getAuditReader().find(Master.class, m1_id, 3);
- Master rev1_4 = getAuditReader().find(Master.class, m1_id, 4);
-
- assert (rev1_1 != null);
- assert (rev1_2 != null);
- assert (rev1_3 != null);
- assert (rev1_4 != null);
- }
-
-}
Copied: core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/ManyToManyInverseToSuperclassTest.java (from rev 19481, core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/ManyToManyInverseToSuperclassTest.java)
===================================================================
--- core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/ManyToManyInverseToSuperclassTest.java (rev 0)
+++ core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/ManyToManyInverseToSuperclassTest.java 2010-05-12 19:12:12 UTC (rev 19482)
@@ -0,0 +1,114 @@
+package org.hibernate.envers.test.integration.manytomany.inverseToSuperclass;
+
+import java.io.File;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.util.ArrayList;
+
+import javax.persistence.EntityManager;
+
+import org.hibernate.ejb.Ejb3Configuration;
+import org.hibernate.envers.test.AbstractEntityTest;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+
+/**
+ * @author Hern�n Chanfreau
+ *
+ */
+
+public class ManyToManyInverseToSuperclassTest extends AbstractEntityTest {
+
+ private long m1_id;
+
+ public void configure(Ejb3Configuration cfg) {
+ try {
+ URL url = Thread.currentThread().getContextClassLoader()
+ .getResource(
+ "mappings/manyToMany/inverseToSuperclass/mappings.hbm.xml");
+ cfg.addFile(new File(url.toURI()));
+ } catch (URISyntaxException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ @BeforeClass(dependsOnMethods = "init")
+ public void initData() {
+ EntityManager em = getEntityManager();
+
+ Master m1 = new Master();
+ DetailSubclass det1 = new DetailSubclass2();
+
+ // Revision 1
+ em.getTransaction().begin();
+
+ det1.setStr2("detail 1");
+
+ m1.setStr("master");
+ m1.setItems(new ArrayList<DetailSubclass>());
+ m1.getItems().add(det1);
+
+ det1.setMasters(new ArrayList<Master>());
+ det1.getMasters().add(m1);
+
+ em.persist(m1);
+ em.getTransaction().commit();
+ m1_id = m1.getId();
+
+ // Revision 2
+// em.getTransaction().begin();
+//
+// m1 = em.find(Master.class, m1_id);
+//
+// det2.setStr2("detail 2");
+// det2.setParent(m1);
+// m1.getItems().add(det2);
+// em.getTransaction().commit();
+//
+// // Revision 3
+// em.getTransaction().begin();
+//
+// m1 = em.find(Master.class, m1_id);
+// m1.setStr("new master");
+//
+// det1 = m1.getItems().get(0);
+// det1.setStr2("new detail");
+// DetailSubclass det3 = new DetailSubclass2();
+// det3.setStr2("detail 3");
+// det3.setParent(m1);
+//
+// m1.getItems().get(1).setParent(null);
+// // m1.getItems().remove(1);
+// m1.getItems().add(det3);
+//
+// em.persist(m1);
+// em.getTransaction().commit();
+//
+// // Revision 4
+// em.getTransaction().begin();
+//
+// m1 = em.find(Master.class, m1_id);
+//
+// det1 = m1.getItems().get(0);
+// det1.setParent(null);
+// // m1.getItems().remove(det1);
+//
+// em.persist(m1);
+// em.getTransaction().commit();
+
+ }
+
+ @Test
+ public void testHistoryExists() {
+ Master rev1_1 = getAuditReader().find(Master.class, m1_id, 1);
+ Master rev1_2 = getAuditReader().find(Master.class, m1_id, 2);
+ Master rev1_3 = getAuditReader().find(Master.class, m1_id, 3);
+ Master rev1_4 = getAuditReader().find(Master.class, m1_id, 4);
+
+ assert (rev1_1 != null);
+ assert (rev1_2 != null);
+ assert (rev1_3 != null);
+ assert (rev1_4 != null);
+ }
+
+}
Deleted: core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/Master.java
===================================================================
--- core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/Master.java 2010-05-12 18:27:16 UTC (rev 19481)
+++ core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/Master.java 2010-05-12 19:12:12 UTC (rev 19482)
@@ -1,48 +0,0 @@
-package org.hibernate.envers.test.integration.manytomany.inverseToSuperclass;
-
-/**
- * @author Hern�n Chanfreau
- *
- */
-import java.util.List;
-
-import org.hibernate.envers.Audited;
-
- at Audited
-public class Master {
-
- private long id;
-
- private String str;
-
- private List<DetailSubclass> items;
-
- public Master() {
-
- }
-
- public long getId() {
- return id;
- }
-
- public void setId(long id) {
- this.id = id;
- }
-
- public String getStr() {
- return str;
- }
-
- public void setStr(String str) {
- this.str = str;
- }
-
- public List<DetailSubclass> getItems() {
- return items;
- }
-
- public void setItems(List<DetailSubclass> items) {
- this.items = items;
- }
-
-}
Copied: core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/Master.java (from rev 19481, core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/Master.java)
===================================================================
--- core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/Master.java (rev 0)
+++ core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/manytomany/inverseToSuperclass/Master.java 2010-05-12 19:12:12 UTC (rev 19482)
@@ -0,0 +1,48 @@
+package org.hibernate.envers.test.integration.manytomany.inverseToSuperclass;
+
+/**
+ * @author Hern�n Chanfreau
+ *
+ */
+import java.util.List;
+
+import org.hibernate.envers.Audited;
+
+ at Audited
+public class Master {
+
+ private long id;
+
+ private String str;
+
+ private List<DetailSubclass> items;
+
+ public Master() {
+
+ }
+
+ public long getId() {
+ return id;
+ }
+
+ public void setId(long id) {
+ this.id = id;
+ }
+
+ public String getStr() {
+ return str;
+ }
+
+ public void setStr(String str) {
+ this.str = str;
+ }
+
+ public List<DetailSubclass> getItems() {
+ return items;
+ }
+
+ public void setItems(List<DetailSubclass> items) {
+ this.items = items;
+ }
+
+}
Copied: core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass (from rev 19481, core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass)
Deleted: core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/DetailSubclass.java
===================================================================
--- core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/DetailSubclass.java 2010-05-12 18:27:16 UTC (rev 19481)
+++ core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/DetailSubclass.java 2010-05-12 19:12:12 UTC (rev 19482)
@@ -1,26 +0,0 @@
-package org.hibernate.envers.test.integration.onetomany.inverseToSuperclass;
-
-/**
- * @author Hern�n Chanfreau
- *
- */
-import org.hibernate.envers.Audited;
-
- at Audited
-public class DetailSubclass extends DetailSuperclass {
-
- private String str2;
-
- public DetailSubclass() {
-
- }
-
- public String getStr2() {
- return str2;
- }
-
- public void setStr2(String str2) {
- this.str2 = str2;
- }
-
-}
Copied: core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/DetailSubclass.java (from rev 19481, core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/DetailSubclass.java)
===================================================================
--- core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/DetailSubclass.java (rev 0)
+++ core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/DetailSubclass.java 2010-05-12 19:12:12 UTC (rev 19482)
@@ -0,0 +1,26 @@
+package org.hibernate.envers.test.integration.onetomany.inverseToSuperclass;
+
+/**
+ * @author Hern�n Chanfreau
+ *
+ */
+import org.hibernate.envers.Audited;
+
+ at Audited
+public class DetailSubclass extends DetailSuperclass {
+
+ private String str2;
+
+ public DetailSubclass() {
+
+ }
+
+ public String getStr2() {
+ return str2;
+ }
+
+ public void setStr2(String str2) {
+ this.str2 = str2;
+ }
+
+}
Deleted: core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/DetailSubclass2.java
===================================================================
--- core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/DetailSubclass2.java 2010-05-12 18:27:16 UTC (rev 19481)
+++ core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/DetailSubclass2.java 2010-05-12 19:12:12 UTC (rev 19482)
@@ -1,26 +0,0 @@
-package org.hibernate.envers.test.integration.onetomany.inverseToSuperclass;
-
-/**
- * @author Hern�n Chanfreau
- *
- */
-import org.hibernate.envers.Audited;
-
- at Audited
-public class DetailSubclass2 extends DetailSubclass {
-
- private String str3;
-
- public DetailSubclass2() {
-
- }
-
- public String getStr3() {
- return str3;
- }
-
- public void setStr3(String str3) {
- this.str3 = str3;
- }
-
-}
Copied: core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/DetailSubclass2.java (from rev 19481, core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/DetailSubclass2.java)
===================================================================
--- core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/DetailSubclass2.java (rev 0)
+++ core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/DetailSubclass2.java 2010-05-12 19:12:12 UTC (rev 19482)
@@ -0,0 +1,26 @@
+package org.hibernate.envers.test.integration.onetomany.inverseToSuperclass;
+
+/**
+ * @author Hern�n Chanfreau
+ *
+ */
+import org.hibernate.envers.Audited;
+
+ at Audited
+public class DetailSubclass2 extends DetailSubclass {
+
+ private String str3;
+
+ public DetailSubclass2() {
+
+ }
+
+ public String getStr3() {
+ return str3;
+ }
+
+ public void setStr3(String str3) {
+ this.str3 = str3;
+ }
+
+}
Deleted: core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/DetailSuperclass.java
===================================================================
--- core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/DetailSuperclass.java 2010-05-12 18:27:16 UTC (rev 19481)
+++ core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/DetailSuperclass.java 2010-05-12 19:12:12 UTC (rev 19482)
@@ -1,36 +0,0 @@
-package org.hibernate.envers.test.integration.onetomany.inverseToSuperclass;
-
-/**
- * @author Hern�n Chanfreau
- *
- */
-import org.hibernate.envers.Audited;
-
- at Audited
-public class DetailSuperclass {
-
- private long id;
-
- private Master parent;
-
- public DetailSuperclass() {
-
- }
-
- public long getId() {
- return id;
- }
-
- public void setId(long id) {
- this.id = id;
- }
-
- public Master getParent() {
- return parent;
- }
-
- public void setParent(Master parent) {
- this.parent = parent;
- }
-
-}
Copied: core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/DetailSuperclass.java (from rev 19481, core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/DetailSuperclass.java)
===================================================================
--- core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/DetailSuperclass.java (rev 0)
+++ core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/DetailSuperclass.java 2010-05-12 19:12:12 UTC (rev 19482)
@@ -0,0 +1,36 @@
+package org.hibernate.envers.test.integration.onetomany.inverseToSuperclass;
+
+/**
+ * @author Hern�n Chanfreau
+ *
+ */
+import org.hibernate.envers.Audited;
+
+ at Audited
+public class DetailSuperclass {
+
+ private long id;
+
+ private Master parent;
+
+ public DetailSuperclass() {
+
+ }
+
+ public long getId() {
+ return id;
+ }
+
+ public void setId(long id) {
+ this.id = id;
+ }
+
+ public Master getParent() {
+ return parent;
+ }
+
+ public void setParent(Master parent) {
+ this.parent = parent;
+ }
+
+}
Deleted: core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/Master.java
===================================================================
--- core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/Master.java 2010-05-12 18:27:16 UTC (rev 19481)
+++ core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/Master.java 2010-05-12 19:12:12 UTC (rev 19482)
@@ -1,48 +0,0 @@
-package org.hibernate.envers.test.integration.onetomany.inverseToSuperclass;
-
-/**
- * @author Hern�n Chanfreau
- *
- */
-import java.util.List;
-
-import org.hibernate.envers.Audited;
-
- at Audited
-public class Master {
-
- private long id;
-
- private String str;
-
- private List<DetailSubclass> items;
-
- public Master() {
-
- }
-
- public long getId() {
- return id;
- }
-
- public void setId(long id) {
- this.id = id;
- }
-
- public String getStr() {
- return str;
- }
-
- public void setStr(String str) {
- this.str = str;
- }
-
- public List<DetailSubclass> getItems() {
- return items;
- }
-
- public void setItems(List<DetailSubclass> items) {
- this.items = items;
- }
-
-}
Copied: core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/Master.java (from rev 19481, core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/Master.java)
===================================================================
--- core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/Master.java (rev 0)
+++ core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/Master.java 2010-05-12 19:12:12 UTC (rev 19482)
@@ -0,0 +1,48 @@
+package org.hibernate.envers.test.integration.onetomany.inverseToSuperclass;
+
+/**
+ * @author Hern�n Chanfreau
+ *
+ */
+import java.util.List;
+
+import org.hibernate.envers.Audited;
+
+ at Audited
+public class Master {
+
+ private long id;
+
+ private String str;
+
+ private List<DetailSubclass> items;
+
+ public Master() {
+
+ }
+
+ public long getId() {
+ return id;
+ }
+
+ public void setId(long id) {
+ this.id = id;
+ }
+
+ public String getStr() {
+ return str;
+ }
+
+ public void setStr(String str) {
+ this.str = str;
+ }
+
+ public List<DetailSubclass> getItems() {
+ return items;
+ }
+
+ public void setItems(List<DetailSubclass> items) {
+ this.items = items;
+ }
+
+}
Deleted: core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/OneToManyInverseToSuperclassTest.java
===================================================================
--- core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/OneToManyInverseToSuperclassTest.java 2010-05-12 18:27:16 UTC (rev 19481)
+++ core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/OneToManyInverseToSuperclassTest.java 2010-05-12 19:12:12 UTC (rev 19482)
@@ -1,113 +0,0 @@
-package org.hibernate.envers.test.integration.onetomany.inverseToSuperclass;
-
-import java.io.File;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.util.ArrayList;
-
-import javax.persistence.EntityManager;
-
-import org.hibernate.ejb.Ejb3Configuration;
-import org.hibernate.envers.test.AbstractEntityTest;
-import org.testng.annotations.BeforeClass;
-import org.testng.annotations.Test;
-
-/**
- * @author Hern�n Chanfreau
- *
- */
-
-public class OneToManyInverseToSuperclassTest extends AbstractEntityTest {
-
- private long m1_id;
-
- public void configure(Ejb3Configuration cfg) {
- try {
- URL url = Thread.currentThread().getContextClassLoader()
- .getResource(
- "mappings/oneToMany/inverseToSuperclass/mappings.hbm.xml");
- cfg.addFile(new File(url.toURI()));
- } catch (URISyntaxException e) {
- throw new RuntimeException(e);
- }
- }
-
- @BeforeClass(dependsOnMethods = "init")
- public void initData() {
- EntityManager em = getEntityManager();
-
- Master m1 = new Master();
- DetailSubclass det1 = new DetailSubclass2();
- DetailSubclass det2 = new DetailSubclass2();
-
- // Revision 1
- em.getTransaction().begin();
-
- det1.setStr2("detail 1");
-
- m1.setStr("master");
- m1.setItems(new ArrayList<DetailSubclass>());
- m1.getItems().add(det1);
- det1.setParent(m1);
-
- em.persist(m1);
- em.getTransaction().commit();
- m1_id = m1.getId();
-
- // Revision 2
- em.getTransaction().begin();
-
- m1 = em.find(Master.class, m1_id);
-
- det2.setStr2("detail 2");
- det2.setParent(m1);
- m1.getItems().add(det2);
- em.getTransaction().commit();
-
- // Revision 3
- em.getTransaction().begin();
-
- m1 = em.find(Master.class, m1_id);
- m1.setStr("new master");
-
- det1 = m1.getItems().get(0);
- det1.setStr2("new detail");
- DetailSubclass det3 = new DetailSubclass2();
- det3.setStr2("detail 3");
- det3.setParent(m1);
-
- m1.getItems().get(1).setParent(null);
- // m1.getItems().remove(1);
- m1.getItems().add(det3);
-
- em.persist(m1);
- em.getTransaction().commit();
-
- // Revision 4
- em.getTransaction().begin();
-
- m1 = em.find(Master.class, m1_id);
-
- det1 = m1.getItems().get(0);
- det1.setParent(null);
- // m1.getItems().remove(det1);
-
- em.persist(m1);
- em.getTransaction().commit();
-
- }
-
- @Test
- public void testHistoryExists() {
- Master rev1_1 = getAuditReader().find(Master.class, m1_id, 1);
- Master rev1_2 = getAuditReader().find(Master.class, m1_id, 2);
- Master rev1_3 = getAuditReader().find(Master.class, m1_id, 3);
- Master rev1_4 = getAuditReader().find(Master.class, m1_id, 4);
-
- assert (rev1_1 != null);
- assert (rev1_2 != null);
- assert (rev1_3 != null);
- assert (rev1_4 != null);
- }
-
-}
Copied: core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/OneToManyInverseToSuperclassTest.java (from rev 19481, core/trunk/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/OneToManyInverseToSuperclassTest.java)
===================================================================
--- core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/OneToManyInverseToSuperclassTest.java (rev 0)
+++ core/branches/Branch_3_5/envers/src/test/java/org/hibernate/envers/test/integration/onetomany/inverseToSuperclass/OneToManyInverseToSuperclassTest.java 2010-05-12 19:12:12 UTC (rev 19482)
@@ -0,0 +1,113 @@
+package org.hibernate.envers.test.integration.onetomany.inverseToSuperclass;
+
+import java.io.File;
+import java.net.URISyntaxException;
+import java.net.URL;
+import java.util.ArrayList;
+
+import javax.persistence.EntityManager;
+
+import org.hibernate.ejb.Ejb3Configuration;
+import org.hibernate.envers.test.AbstractEntityTest;
+import org.testng.annotations.BeforeClass;
+import org.testng.annotations.Test;
+
+/**
+ * @author Hern�n Chanfreau
+ *
+ */
+
+public class OneToManyInverseToSuperclassTest extends AbstractEntityTest {
+
+ private long m1_id;
+
+ public void configure(Ejb3Configuration cfg) {
+ try {
+ URL url = Thread.currentThread().getContextClassLoader()
+ .getResource(
+ "mappings/oneToMany/inverseToSuperclass/mappings.hbm.xml");
+ cfg.addFile(new File(url.toURI()));
+ } catch (URISyntaxException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ @BeforeClass(dependsOnMethods = "init")
+ public void initData() {
+ EntityManager em = getEntityManager();
+
+ Master m1 = new Master();
+ DetailSubclass det1 = new DetailSubclass2();
+ DetailSubclass det2 = new DetailSubclass2();
+
+ // Revision 1
+ em.getTransaction().begin();
+
+ det1.setStr2("detail 1");
+
+ m1.setStr("master");
+ m1.setItems(new ArrayList<DetailSubclass>());
+ m1.getItems().add(det1);
+ det1.setParent(m1);
+
+ em.persist(m1);
+ em.getTransaction().commit();
+ m1_id = m1.getId();
+
+ // Revision 2
+ em.getTransaction().begin();
+
+ m1 = em.find(Master.class, m1_id);
+
+ det2.setStr2("detail 2");
+ det2.setParent(m1);
+ m1.getItems().add(det2);
+ em.getTransaction().commit();
+
+ // Revision 3
+ em.getTransaction().begin();
+
+ m1 = em.find(Master.class, m1_id);
+ m1.setStr("new master");
+
+ det1 = m1.getItems().get(0);
+ det1.setStr2("new detail");
+ DetailSubclass det3 = new DetailSubclass2();
+ det3.setStr2("detail 3");
+ det3.setParent(m1);
+
+ m1.getItems().get(1).setParent(null);
+ // m1.getItems().remove(1);
+ m1.getItems().add(det3);
+
+ em.persist(m1);
+ em.getTransaction().commit();
+
+ // Revision 4
+ em.getTransaction().begin();
+
+ m1 = em.find(Master.class, m1_id);
+
+ det1 = m1.getItems().get(0);
+ det1.setParent(null);
+ // m1.getItems().remove(det1);
+
+ em.persist(m1);
+ em.getTransaction().commit();
+
+ }
+
+ @Test
+ public void testHistoryExists() {
+ Master rev1_1 = getAuditReader().find(Master.class, m1_id, 1);
+ Master rev1_2 = getAuditReader().find(Master.class, m1_id, 2);
+ Master rev1_3 = getAuditReader().find(Master.class, m1_id, 3);
+ Master rev1_4 = getAuditReader().find(Master.class, m1_id, 4);
+
+ assert (rev1_1 != null);
+ assert (rev1_2 != null);
+ assert (rev1_3 != null);
+ assert (rev1_4 != null);
+ }
+
+}
Copied: core/branches/Branch_3_5/envers/src/test/resources/mappings/manyToMany (from rev 19481, core/trunk/envers/src/test/resources/mappings/manyToMany)
Copied: core/branches/Branch_3_5/envers/src/test/resources/mappings/manyToMany/inverseToSuperclass (from rev 19481, core/trunk/envers/src/test/resources/mappings/manyToMany/inverseToSuperclass)
Deleted: core/branches/Branch_3_5/envers/src/test/resources/mappings/manyToMany/inverseToSuperclass/mappings.hbm.xml
===================================================================
--- core/trunk/envers/src/test/resources/mappings/manyToMany/inverseToSuperclass/mappings.hbm.xml 2010-05-12 18:27:16 UTC (rev 19481)
+++ core/branches/Branch_3_5/envers/src/test/resources/mappings/manyToMany/inverseToSuperclass/mappings.hbm.xml 2010-05-12 19:12:12 UTC (rev 19482)
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="WINDOWS-1251"?>
-<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
-<hibernate-mapping>
-
- <class
- name="org.hibernate.envers.test.integration.manytomany.inverseToSuperclass.Master"
- table="HIB_MASTER_ENTITY">
-
- <id name="id" column="ID" type="long">
- <generator class="increment" />
- </id>
-
- <property name="str" column="STR" />
-
- <bag name="items" lazy="true" cascade="all" access="property" inverse="true"
- table="HIB_MASTER_DETAIL">
- <key column="ID_MASTER" />
- <many-to-many
- class="org.hibernate.envers.test.integration.manytomany.inverseToSuperclass.DetailSubclass2"
- column="ID_DETAIL" />
- </bag>
- </class>
-
-
- <class
- name="org.hibernate.envers.test.integration.manytomany.inverseToSuperclass.DetailSuperclass"
- table="HIB_DETAIL_ENTITY" abstract="true">
- <id name="id" column="ID" type="long">
- <generator class="increment" />
- </id>
- <discriminator column="DISCRIMINATOR" type="string" />
-
- <bag name="masters" lazy="true" access="property" table="HIB_MASTER_DETAIL">
- <key column="ID_DETAIL" />
- <many-to-many
- class="org.hibernate.envers.test.integration.manytomany.inverseToSuperclass.Master"
- column="ID_MASTER" />
- </bag>
-
- <subclass
- name="org.hibernate.envers.test.integration.manytomany.inverseToSuperclass.DetailSubclass"
- discriminator-value="SUB">
- <property name="str2" column="STR2" />
-
- <subclass
- name="org.hibernate.envers.test.integration.manytomany.inverseToSuperclass.DetailSubclass2"
- discriminator-value="SUB2"
- extends="org.hibernate.envers.test.integration.manytomany.inverseToSuperclass.DetailSubclass">
- <property name="str3" column="STR3" />
-
- </subclass>
-
- </subclass>
- </class>
-
-
-</hibernate-mapping>
Copied: core/branches/Branch_3_5/envers/src/test/resources/mappings/manyToMany/inverseToSuperclass/mappings.hbm.xml (from rev 19481, core/trunk/envers/src/test/resources/mappings/manyToMany/inverseToSuperclass/mappings.hbm.xml)
===================================================================
--- core/branches/Branch_3_5/envers/src/test/resources/mappings/manyToMany/inverseToSuperclass/mappings.hbm.xml (rev 0)
+++ core/branches/Branch_3_5/envers/src/test/resources/mappings/manyToMany/inverseToSuperclass/mappings.hbm.xml 2010-05-12 19:12:12 UTC (rev 19482)
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="WINDOWS-1251"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+<hibernate-mapping>
+
+ <class
+ name="org.hibernate.envers.test.integration.manytomany.inverseToSuperclass.Master"
+ table="HIB_MASTER_ENTITY">
+
+ <id name="id" column="ID" type="long">
+ <generator class="increment" />
+ </id>
+
+ <property name="str" column="STR" />
+
+ <bag name="items" lazy="true" cascade="all" access="property" inverse="true"
+ table="HIB_MASTER_DETAIL">
+ <key column="ID_MASTER" />
+ <many-to-many
+ class="org.hibernate.envers.test.integration.manytomany.inverseToSuperclass.DetailSubclass2"
+ column="ID_DETAIL" />
+ </bag>
+ </class>
+
+
+ <class
+ name="org.hibernate.envers.test.integration.manytomany.inverseToSuperclass.DetailSuperclass"
+ table="HIB_DETAIL_ENTITY" abstract="true">
+ <id name="id" column="ID" type="long">
+ <generator class="increment" />
+ </id>
+ <discriminator column="DISCRIMINATOR" type="string" />
+
+ <bag name="masters" lazy="true" access="property" table="HIB_MASTER_DETAIL">
+ <key column="ID_DETAIL" />
+ <many-to-many
+ class="org.hibernate.envers.test.integration.manytomany.inverseToSuperclass.Master"
+ column="ID_MASTER" />
+ </bag>
+
+ <subclass
+ name="org.hibernate.envers.test.integration.manytomany.inverseToSuperclass.DetailSubclass"
+ discriminator-value="SUB">
+ <property name="str2" column="STR2" />
+
+ <subclass
+ name="org.hibernate.envers.test.integration.manytomany.inverseToSuperclass.DetailSubclass2"
+ discriminator-value="SUB2"
+ extends="org.hibernate.envers.test.integration.manytomany.inverseToSuperclass.DetailSubclass">
+ <property name="str3" column="STR3" />
+
+ </subclass>
+
+ </subclass>
+ </class>
+
+
+</hibernate-mapping>
Copied: core/branches/Branch_3_5/envers/src/test/resources/mappings/oneToMany (from rev 19481, core/trunk/envers/src/test/resources/mappings/oneToMany)
Copied: core/branches/Branch_3_5/envers/src/test/resources/mappings/oneToMany/inverseToSuperclass (from rev 19481, core/trunk/envers/src/test/resources/mappings/oneToMany/inverseToSuperclass)
Deleted: core/branches/Branch_3_5/envers/src/test/resources/mappings/oneToMany/inverseToSuperclass/mappings.hbm.xml
===================================================================
--- core/trunk/envers/src/test/resources/mappings/oneToMany/inverseToSuperclass/mappings.hbm.xml 2010-05-12 18:27:16 UTC (rev 19481)
+++ core/branches/Branch_3_5/envers/src/test/resources/mappings/oneToMany/inverseToSuperclass/mappings.hbm.xml 2010-05-12 19:12:12 UTC (rev 19482)
@@ -1,51 +0,0 @@
-<?xml version="1.0" encoding="WINDOWS-1251"?>
-<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
-<hibernate-mapping>
-
- <class
- name="org.hibernate.envers.test.integration.onetomany.inverseToSuperclass.Master"
- table="HIB_MASTER_ENTITY">
-
- <id name="id" column="ID" type="long">
- <generator class="increment" />
- </id>
-
- <property name="str" column="STR" />
-
- <bag name="items" lazy="true" cascade="all" access="property"
- inverse="true">
- <key column="ID_MASTER" />
- <one-to-many
- class="org.hibernate.envers.test.integration.onetomany.inverseToSuperclass.DetailSubclass2" />
- </bag>
- </class>
-
-
- <class
- name="org.hibernate.envers.test.integration.onetomany.inverseToSuperclass.DetailSuperclass"
- table="HIB_DETAIL_ENTITY" abstract="true">
- <id name="id" column="ID" type="long">
- <generator class="increment" />
- </id>
- <discriminator column="DISCRIMINATOR" type="string" />
-
- <many-to-one name="parent" column="ID_MASTER"
- class="org.hibernate.envers.test.integration.onetomany.inverseToSuperclass.Master" />
-
- <subclass
- name="org.hibernate.envers.test.integration.onetomany.inverseToSuperclass.DetailSubclass"
- discriminator-value="SUB">
- <property name="str2" column="STR2" />
-
- <subclass
- name="org.hibernate.envers.test.integration.onetomany.inverseToSuperclass.DetailSubclass2"
- discriminator-value="SUB2" extends="org.hibernate.envers.test.integration.onetomany.inverseToSuperclass.DetailSubclass">
- <property name="str3" column="STR3" />
-
- </subclass>
-
- </subclass>
- </class>
-
-
-</hibernate-mapping>
Copied: core/branches/Branch_3_5/envers/src/test/resources/mappings/oneToMany/inverseToSuperclass/mappings.hbm.xml (from rev 19481, core/trunk/envers/src/test/resources/mappings/oneToMany/inverseToSuperclass/mappings.hbm.xml)
===================================================================
--- core/branches/Branch_3_5/envers/src/test/resources/mappings/oneToMany/inverseToSuperclass/mappings.hbm.xml (rev 0)
+++ core/branches/Branch_3_5/envers/src/test/resources/mappings/oneToMany/inverseToSuperclass/mappings.hbm.xml 2010-05-12 19:12:12 UTC (rev 19482)
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="WINDOWS-1251"?>
+<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
+<hibernate-mapping>
+
+ <class
+ name="org.hibernate.envers.test.integration.onetomany.inverseToSuperclass.Master"
+ table="HIB_MASTER_ENTITY">
+
+ <id name="id" column="ID" type="long">
+ <generator class="increment" />
+ </id>
+
+ <property name="str" column="STR" />
+
+ <bag name="items" lazy="true" cascade="all" access="property"
+ inverse="true">
+ <key column="ID_MASTER" />
+ <one-to-many
+ class="org.hibernate.envers.test.integration.onetomany.inverseToSuperclass.DetailSubclass2" />
+ </bag>
+ </class>
+
+
+ <class
+ name="org.hibernate.envers.test.integration.onetomany.inverseToSuperclass.DetailSuperclass"
+ table="HIB_DETAIL_ENTITY" abstract="true">
+ <id name="id" column="ID" type="long">
+ <generator class="increment" />
+ </id>
+ <discriminator column="DISCRIMINATOR" type="string" />
+
+ <many-to-one name="parent" column="ID_MASTER"
+ class="org.hibernate.envers.test.integration.onetomany.inverseToSuperclass.Master" />
+
+ <subclass
+ name="org.hibernate.envers.test.integration.onetomany.inverseToSuperclass.DetailSubclass"
+ discriminator-value="SUB">
+ <property name="str2" column="STR2" />
+
+ <subclass
+ name="org.hibernate.envers.test.integration.onetomany.inverseToSuperclass.DetailSubclass2"
+ discriminator-value="SUB2" extends="org.hibernate.envers.test.integration.onetomany.inverseToSuperclass.DetailSubclass">
+ <property name="str3" column="STR3" />
+
+ </subclass>
+
+ </subclass>
+ </class>
+
+
+</hibernate-mapping>
Modified: core/branches/Branch_3_5/envers/src/test/resources/testng.xml
===================================================================
--- core/branches/Branch_3_5/envers/src/test/resources/testng.xml 2010-05-12 18:27:16 UTC (rev 19481)
+++ core/branches/Branch_3_5/envers/src/test/resources/testng.xml 2010-05-12 19:12:12 UTC (rev 19482)
@@ -43,6 +43,7 @@
<package name="org.hibernate.envers.test.integration.interfaces.hbm.propertiesAudited2.union" />
<package name="org.hibernate.envers.test.integration.manytomany" />
<package name="org.hibernate.envers.test.integration.manytomany.biowned" />
+ <package name="org.hibernate.envers.test.integration.manytomany.inverseToSuperclass" />
<package name="org.hibernate.envers.test.integration.manytomany.sametable" />
<package name="org.hibernate.envers.test.integration.manytomany.ternary" />
<package name="org.hibernate.envers.test.integration.manytomany.unidirectional" />
@@ -53,6 +54,7 @@
<package name="org.hibernate.envers.test.integration.notinsertable.manytoone" />
<package name="org.hibernate.envers.test.integration.onetomany" />
<package name="org.hibernate.envers.test.integration.onetomany.detached" />
+ <package name="org.hibernate.envers.test.integration.onetomany.inverseToSuperclass" />
<package name="org.hibernate.envers.test.integration.onetoone.bidirectional" />
<package name="org.hibernate.envers.test.integration.onetoone.bidirectional.ids" />
<package name="org.hibernate.envers.test.integration.onetoone.unidirectional" />
More information about the hibernate-commits
mailing list