[hibernate-commits] Hibernate SVN: r10349 - in trunk/HibernateExt/metadata/src: java/org/hibernate/annotations java/org/hibernate/cfg java/org/hibernate/cfg/annotations java/org/hibernate/validator test/org/hibernate/test/annotations/indexcoll test/org/hibernate/test/annotations/manytomany
hibernate-commits at lists.jboss.org
hibernate-commits at lists.jboss.org
Fri Aug 25 18:11:44 EDT 2006
Author: epbernard
Date: 2006-08-25 18:11:42 -0400 (Fri, 25 Aug 2006)
New Revision: 10349
Added:
trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/manytomany/Building.java
trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/manytomany/BuildingCompany.java
trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/manytomany/Company.java
Modified:
trunk/HibernateExt/metadata/src/java/org/hibernate/annotations/FlushModeType.java
trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/BinderHelper.java
trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/OneToOneSecondPass.java
trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/annotations/CollectionBinder.java
trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/annotations/QueryBinder.java
trunk/HibernateExt/metadata/src/java/org/hibernate/validator/ClassValidator.java
trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/indexcoll/Atmosphere.java
trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/manytomany/ManyToManyTest.java
Log:
add MANUAL to flush mode type
Various additional tests
Modified: trunk/HibernateExt/metadata/src/java/org/hibernate/annotations/FlushModeType.java
===================================================================
--- trunk/HibernateExt/metadata/src/java/org/hibernate/annotations/FlushModeType.java 2006-08-25 00:14:35 UTC (rev 10348)
+++ trunk/HibernateExt/metadata/src/java/org/hibernate/annotations/FlushModeType.java 2006-08-25 22:11:42 UTC (rev 10349)
@@ -21,6 +21,11 @@
COMMIT,
/**
* see {@link org.hibernate.FlushMode.NEVER}
+ * @deprecated use MANUAL, will be removed in a subsequent release
*/
- NEVER
+ NEVER,
+ /**
+ * see {@link org.hibernate.FlushMode.MANUAL}
+ */
+ MANUAL
}
\ No newline at end of file
Modified: trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/BinderHelper.java
===================================================================
--- trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/BinderHelper.java 2006-08-25 00:14:35 UTC (rev 10348)
+++ trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/BinderHelper.java 2006-08-25 22:11:42 UTC (rev 10349)
@@ -255,13 +255,17 @@
return orderedProperties;
}
+ /**
+ * Retrieve the property by path in a recursive way, including IndetifierProperty in the loop
+ * If propertyName is null or empty, the IdentifierProperty is returned
+ */
public static Property findPropertyByName(PersistentClass associatedClass, String propertyName) {
Property property = null;
Property idProperty = associatedClass.getIdentifierProperty();
String idName = idProperty != null ? idProperty.getName() : null;
try {
if ( propertyName == null
- || propertyName.equals( "" )
+ || propertyName.length() == 0
|| propertyName.equals( idName ) ) {
//default to id
property = idProperty;
Modified: trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/OneToOneSecondPass.java
===================================================================
--- trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/OneToOneSecondPass.java 2006-08-25 00:14:35 UTC (rev 10348)
+++ trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/OneToOneSecondPass.java 2006-08-25 22:11:42 UTC (rev 10349)
@@ -123,7 +123,7 @@
if ( otherSide == null ) {
throw new MappingException( "Unable to find entity: " + value.getReferencedEntityName() );
}
- otherSideProperty = otherSide.getRecursiveProperty( mappedBy );
+ otherSideProperty = BinderHelper.findPropertyByName( otherSide, mappedBy );
}
catch (MappingException e) {
throw new AnnotationException(
Modified: trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/annotations/CollectionBinder.java
===================================================================
--- trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/annotations/CollectionBinder.java 2006-08-25 00:14:35 UTC (rev 10348)
+++ trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/annotations/CollectionBinder.java 2006-08-25 22:11:42 UTC (rev 10349)
@@ -730,7 +730,7 @@
List<String> properties = new ArrayList<String>();
List<String> ordering = new ArrayList<String>();
StringBuilder orderByBuffer = new StringBuilder();
- if ( "".equals( hqlOrderBy ) ) {
+ if ( hqlOrderBy != null && hqlOrderBy.length() == 0 ) {
//TODO : Check that. Maybe order by key for maps
}
else {
Modified: trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/annotations/QueryBinder.java
===================================================================
--- trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/annotations/QueryBinder.java 2006-08-25 00:14:35 UTC (rev 10348)
+++ trunk/HibernateExt/metadata/src/java/org/hibernate/cfg/annotations/QueryBinder.java 2006-08-25 22:11:42 UTC (rev 10349)
@@ -248,6 +248,9 @@
case NEVER:
flushMode = FlushMode.MANUAL;
break;
+ case MANUAL:
+ flushMode = FlushMode.MANUAL;
+ break;
default:
throw new AssertionFailure( "Unknown flushModeType: " + flushModeType );
}
Modified: trunk/HibernateExt/metadata/src/java/org/hibernate/validator/ClassValidator.java
===================================================================
--- trunk/HibernateExt/metadata/src/java/org/hibernate/validator/ClassValidator.java 2006-08-25 00:14:35 UTC (rev 10348)
+++ trunk/HibernateExt/metadata/src/java/org/hibernate/validator/ClassValidator.java 2006-08-25 22:11:42 UTC (rev 10349)
@@ -29,6 +29,7 @@
import org.hibernate.Hibernate;
import org.hibernate.MappingException;
import org.hibernate.cfg.annotations.Version;
+import org.hibernate.cfg.BinderHelper;
import org.hibernate.mapping.PersistentClass;
import org.hibernate.mapping.Property;
import org.hibernate.reflection.Filter;
@@ -563,10 +564,7 @@
String propertyName = getPropertyName( getters.next() );
if ( validator instanceof PropertyConstraint ) {
try {
- Property property = persistentClass.getIdentifierProperty();
- if ( property == null || ! propertyName.equals( property.getName() ) ) {
- property = persistentClass.getProperty( propertyName );
- }
+ Property property = BinderHelper.findPropertyByName(persistentClass, propertyName);
( (PropertyConstraint) validator ).apply( property );
}
catch (MappingException pnfe) {
Modified: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/indexcoll/Atmosphere.java
===================================================================
--- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/indexcoll/Atmosphere.java 2006-08-25 00:14:35 UTC (rev 10348)
+++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/indexcoll/Atmosphere.java 2006-08-25 22:11:42 UTC (rev 10349)
@@ -30,6 +30,7 @@
public Map<String, Gas> gases = new HashMap<String, Gas>();
@ManyToMany(cascade = CascadeType.ALL)
+ @MapKeyManyToMany(joinColumns = @JoinColumn(name="gas_id") )
@JoinTable(name = "Gas_per_key")
public Map<GasKey, Gas> gasesPerKey = new HashMap<GasKey, Gas>();
Added: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/manytomany/Building.java
===================================================================
--- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/manytomany/Building.java 2006-08-25 00:14:35 UTC (rev 10348)
+++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/manytomany/Building.java 2006-08-25 22:11:42 UTC (rev 10349)
@@ -0,0 +1,35 @@
+//$Id: $
+package org.hibernate.test.annotations.manytomany;
+
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+
+/**
+ * @author Emmanuel Bernard
+ */
+ at Entity
+public class Building {
+ @Id @GeneratedValue private Long id;
+
+ @ManyToOne @JoinColumn(name="company_id", referencedColumnName = "name")
+ private BuildingCompany company;
+
+ public BuildingCompany getCompany() {
+ return company;
+ }
+
+ public void setCompany(BuildingCompany company) {
+ this.company = company;
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+ public void setId(Long id) {
+ this.id = id;
+ }
+}
Added: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/manytomany/BuildingCompany.java
===================================================================
--- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/manytomany/BuildingCompany.java 2006-08-25 00:14:35 UTC (rev 10348)
+++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/manytomany/BuildingCompany.java 2006-08-25 22:11:42 UTC (rev 10349)
@@ -0,0 +1,29 @@
+//$Id: $
+package org.hibernate.test.annotations.manytomany;
+
+import java.util.Date;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.GeneratedValue;
+
+/**
+ * @author Emmanuel Bernard
+ */
+ at Entity
+public class BuildingCompany extends Company {
+ @Id @GeneratedValue private Long id;
+ private Date foundedIn;
+
+ public Date getFoundedIn() {
+ return foundedIn;
+ }
+
+ public void setFoundedIn(Date foundedIn) {
+ this.foundedIn = foundedIn;
+ }
+
+ public Long getId() {
+ return id;
+ }
+
+}
Added: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/manytomany/Company.java
===================================================================
--- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/manytomany/Company.java 2006-08-25 00:14:35 UTC (rev 10348)
+++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/manytomany/Company.java 2006-08-25 22:11:42 UTC (rev 10349)
@@ -0,0 +1,22 @@
+//$Id: $
+package org.hibernate.test.annotations.manytomany;
+
+import java.io.Serializable;
+import javax.persistence.MappedSuperclass;
+import javax.persistence.Column;
+
+/**
+ * @author Emmanuel Bernard
+ */
+ at MappedSuperclass
+public class Company implements Serializable {
+ @Column(unique = true) private String name;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+}
Modified: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/manytomany/ManyToManyTest.java
===================================================================
--- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/manytomany/ManyToManyTest.java 2006-08-25 00:14:35 UTC (rev 10348)
+++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/manytomany/ManyToManyTest.java 2006-08-25 22:11:42 UTC (rev 10349)
@@ -484,6 +484,24 @@
s.close();
}
+ public void testReferencedColumnNameToSuperclass() throws Exception {
+ Session s = openSession();
+ Transaction tx = s.beginTransaction();
+ BuildingCompany comp = new BuildingCompany();
+ comp.setFoundedIn( new Date() );
+ comp.setName( "Builder century corp.");
+ s.persist( comp );
+ Building building = new Building();
+ building.setCompany( comp );
+ s.persist( building );
+ s.flush();
+ s.clear();
+ building = (Building) s.get( Building.class, building.getId() );
+ assertEquals( comp.getName(), building.getCompany().getName() );
+ tx.rollback();
+ s.close();
+ }
+
/**
* @see org.hibernate.test.annotations.TestCase#getMappings()
*/
@@ -503,7 +521,9 @@
Permission.class,
Zone.class,
Inspector.class,
- InspectorPrefixes.class
+ InspectorPrefixes.class,
+ BuildingCompany.class,
+ Building.class
};
}
More information about the hibernate-commits
mailing list