[hibernate/hibernate-orm] 414e61: HHH-6662, HHH-7445 - Fix and test
by GitHub
Branch: refs/heads/master
Home: https://github.com/hibernate/hibernate-orm
Commit: 414e6111a88949ecf458e1a988ba1ade7aa54116
https://github.com/hibernate/hibernate-orm/commit/414e6111a88949ecf458e1a...
Author: Lukasz Antoniak <lukasz.antoniak(a)gmail.com>
Date: 2012-07-25 (Wed, 25 Jul 2012)
Changed paths:
M hibernate-core/src/main/java/org/hibernate/cfg/AbstractPropertyHolder.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/id/sequences/HibernateSequenceTest.java
A hibernate-core/src/test/java/org/hibernate/test/annotations/override/AssociationOverrideSchemaTest.java
A hibernate-core/src/test/java/org/hibernate/test/annotations/override/BlogEntry.java
A hibernate-core/src/test/java/org/hibernate/test/annotations/override/Entry.java
M hibernate-envers/src/test/java/org/hibernate/envers/test/BaseEnversJPAFunctionalTestCase.java
M hibernate-envers/src/test/java/org/hibernate/envers/test/integration/reventity/DifferentDBSchemaTest.java
M hibernate-testing/src/main/java/org/hibernate/testing/junit4/BaseCoreFunctionalTestCase.java
M hibernate-testing/src/main/java/org/hibernate/testing/junit4/Helper.java
Log Message:
-----------
HHH-6662, HHH-7445 - Fix and test
12 years, 8 months
[hibernate/hibernate-orm] 0f7780: HHH-7474: Added @FailureExpectedWithNewMetamodel a...
by GitHub
Branch: refs/heads/metamodel
Home: https://github.com/hibernate/hibernate-orm
Commit: 0f77803b9c9d3756d1a08caed2dfbe6c4a796bf3
https://github.com/hibernate/hibernate-orm/commit/0f77803b9c9d3756d1a08ca...
Author: John Verhaeg <john.verhaeg(a)gmail.com>
Date: 2012-07-25 (Wed, 25 Jul 2012)
Changed paths:
M hibernate-core/src/test/java/org/hibernate/test/annotations/beanvalidation/BeanValidationAutoTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/beanvalidation/BeanValidationDisabledTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/beanvalidation/BeanValidationGroupsTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/beanvalidation/BeanValidationProvidedFactoryTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/beanvalidation/DDLTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/beanvalidation/DDLWithoutCallbackTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/beanvalidation/HibernateTraversableResolverTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/cascade/CascadeTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/cascade/CascadeToEmbeddedManyToOneTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/cascade/NonNullableCircularDependencyCascadeTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/cascade/circle/identity/CascadeCircleIdentityIdTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/cascade/circle/sequence/CascadeCircleSequenceIdTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/cascade/multicircle/jpa/identity/MultiCircleJpaCascadeIdentityTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/cascade/multicircle/jpa/sequence/MultiCircleJpaCascadeSequenceTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/cascade/multicircle/nonjpa/identity/MultiCircleNonJpaCascadeIdentityTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/cascade/multicircle/nonjpa/sequence/MultiCircleNonJpaCascadeSequenceTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/cid/CompositeIdTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/cid/keymanytoone/EagerKeyManyToOneTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/collectionelement/CollectionElementTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/collectionelement/OrderByTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/collectionelement/embeddables/withcustomenumdef/TestBasicOps.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/collectionelement/indexedCollection/IndexedCollectionOfElementsTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/collectionelement/ordered/ElementCollectionSortingTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/dataTypes/BasicOperationsTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/derivedidentities/bidirectional/CompositeDerivedIdentityTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/derivedidentities/e1/a/DerivedIdentitySimpleParentIdClassDepTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/derivedidentities/e1/b/DerivedIdentitySimpleParentEmbeddedIdDepTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/derivedidentities/e1/b/specjmapid/IdMapManyToOneSpecjTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/derivedidentities/e1/b2/IdClassGeneratedValueManyToOneTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/derivedidentities/e1/c/DerivedIdentitySimpleParentEmbeddedDepTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/derivedidentities/e2/a/DerivedIdentityIdClassParentIdClassDepTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/derivedidentities/e2/b/DerivedIdentityIdClassParentEmbeddedIdDepTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/a/DerivedIdentityEmbeddedIdParentIdClassTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/derivedidentities/e3/b/DerivedIdentityEmbeddedIdParentEmbeddedIdDepTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/derivedidentities/e4/a/DerivedIdentitySimpleParentSimpleDepTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/derivedidentities/e4/b/DerivedIdentitySimpleParentSimpleDepMapsIdTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/derivedidentities/e5/a/DerivedIdentityIdClassParentSameIdTypeIdClassDepTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/derivedidentities/e5/b/DerivedIdentityIdClassParentSameIdTypeEmbeddedIdDepTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/derivedidentities/e5/c/ForeignGeneratorViaMapsIdTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/derivedidentities/e6/a/DerivedIdentityEmbeddedIdParentSameIdTypeIdClassDepTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/derivedidentities/e6/b/DerivedIdentityEmbeddedIdParentSameIdTypeEmbeddedIdDepTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/embedded/EmbeddedTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/embedded/many2one/EmbeddableWithMany2OneTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/engine/collection/UnidirCollectionWithMultipleOwnerTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/entity/BasicHibernateAnnotationsTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/entity/Java5FeaturesTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/entity/NewCustomEntityMappingAnnotationsTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/entity/PropertyDefaultMappingsTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/entitynonentity/EntityNonEntityTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/fetch/FetchingTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/fetchprofile/MoreFetchProfileTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/filter/secondarytable/SecondaryTableTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/filter/subclass/joined/JoinedSubClassTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/filter/subclass/singletable/SingleTableTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/filter/subclass/tableperclass/TablePerClassTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/generics/EmbeddedGenericsTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/generics/GenericsTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/generics/UnresolvedTypeTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/genericsinheritance/GenericsInheritanceTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/id/EnumIdTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/id/IdClassTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/id/IdTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/id/generationmappings/NewGeneratorMappingsTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/id/sequences/EnumIdTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/id/sequences/HibernateSequenceTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/id/sequences/IdClassTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/id/sequences/IdTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/idclass/IdClassCompositePKTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/idclassgeneratedvalue/IdClassGeneratedValueTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/identifiercollection/IdentifierCollectionTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/idmanytoone/IdManyToOneTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/idmanytoone/alphabetical/AlphabeticalIdManyToOneTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/immutable/ImmutableTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/indexcoll/IndexedCollectionTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/indexcoll/MapKeyTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/inheritance/SubclassTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/inheritance/joined/JoinedSubclassAndSecondaryTable.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/inheritance/joined/JoinedSubclassTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/inheritance/mixed/SubclassTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/inheritance/union/SubclassTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/interfaces/InterfacesTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/join/JoinTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/loader/LoaderTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/lob/LobTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/lob/MaterializedBlobTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/lob/VersionedLobTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/manytomany/ManyToManyMaxFetchDepth0Test.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/manytomany/ManyToManyTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/manytoone/ManyToOneJoinTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/manytoone/ManyToOneTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/manytoone/referencedcolumnname/ManyToOneReferencedColumnNameTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/manytoonewithformula/ManyToOneWithFormulaTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/mappedsuperclass/intermediate/IntermediateMappedSuperclassTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/naturalid/ImmutableNaturalKeyLookupTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/naturalid/NaturalIdOnSingleManyToOneTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/naturalid/NaturalIdTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/notfound/NotFoundTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/onetomany/OneToManyTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/onetomany/OrderByTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/onetoone/OneToOneTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/onetoone/OptionalOneToOneMappedByTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/onetoone/OptionalOneToOnePKJCTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/onetoone/hhh4851/HHH4851Test.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/override/AssociationOverrideTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/override/AttributeOverrideTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/persister/PersisterTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/polymorphism/PolymorphismTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/query/QueryAndSQLTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/quote/QuoteGlobalTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/quote/QuoteTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/quote/resultsetmappings/ExplicitSqlResultSetMappingTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/referencedcolumnname/ReferencedColumnNameTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/strategy/StrategyTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/subselect/SubselectTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/tableperclass/TablePerClassTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/target/TargetTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/tuplizer/TuplizerTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/type/TypeTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/uniqueconstraint/UniqueConstraintTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/various/IndexTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/various/OptimisticLockAnnotationTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/various/TimestampTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/various/readwriteexpression/ColumnTransformerTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/xml/ejb3/Ejb3XmlTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/xml/ejb3/OrmVersion1SupportedTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/xml/hbm/HbmTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/xml/hbm/HbmWithIdentityTest.java
Log Message:
-----------
HHH-7474: Added @FailureExpectedWithNewMetamodel annotation to more tests that fail with the new metamodel.
12 years, 8 months
[hibernate/hibernate-orm] 61fe3b: HHH-7474: Added support for new @FailureExpectedWi...
by GitHub
Branch: refs/heads/metamodel
Home: https://github.com/hibernate/hibernate-orm
Commit: 61fe3b74579037c0f29365d1d6c37bc992cd556c
https://github.com/hibernate/hibernate-orm/commit/61fe3b74579037c0f29365d...
Author: John Verhaeg <john.verhaeg(a)gmail.com>
Date: 2012-07-25 (Wed, 25 Jul 2012)
Changed paths:
M hibernate-c3p0/src/test/java/org/hibernate/test/c3p0/StatementCacheTest.java
M hibernate-core/src/test/java/org/hibernate/jpa/version/JpaSpecVersionValueUpdatingTest.java
M hibernate-core/src/test/java/org/hibernate/property/DirectPropertyAccessorTest.java
M hibernate-core/src/test/java/org/hibernate/test/abstractembeddedcomponents/cid/AbstractCompositeIdTest.java
M hibernate-core/src/test/java/org/hibernate/test/abstractembeddedcomponents/propertyref/AbstractComponentPropertyRefTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/EntityTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/JoinedSubclassTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/access/AccessTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/access/jpa/AccessTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/any/AnyTest.java
M hibernate-core/src/test/java/org/hibernate/test/annotations/array/ArrayTest.java
M hibernate-core/src/test/java/org/hibernate/test/array/ArrayTest.java
M hibernate-core/src/test/java/org/hibernate/test/cid/CompositeIdTest.java
A hibernate-testing/src/main/java/org/hibernate/testing/FailureExpectedWithNewMetamodel.java
M hibernate-testing/src/main/java/org/hibernate/testing/junit4/CustomRunner.java
Log Message:
-----------
HHH-7474: Added support for new @FailureExpectedWithNewMetamodel annotation to be used by tests that still fail with the new metamodel. Functions exactly like @FailureExpected, except requires no JIRA key and is only processed when testing against the new metamodel. Also added annotation to several tests that were failing against the new metamodel, to get started with the process of annotating them all.
12 years, 9 months
Hibernate SVN: r21048 - search/tags.
by hibernate-commits@lists.jboss.org
Author: stliu
Date: 2012-07-25 04:15:04 -0400 (Wed, 25 Jul 2012)
New Revision: 21048
Added:
search/tags/v3_1_1_GA_CP05/
Log:
JBPAPP-7063
12 years, 9 months
Hibernate SVN: r21047 - entitymanager/tags.
by hibernate-commits@lists.jboss.org
Author: stliu
Date: 2012-07-25 04:13:35 -0400 (Wed, 25 Jul 2012)
New Revision: 21047
Added:
entitymanager/tags/3.4.0.GA_CP05/
Log:
JBPAPP-7063
12 years, 9 months
Hibernate SVN: r21046 - annotations/tags.
by hibernate-commits@lists.jboss.org
Author: stliu
Date: 2012-07-25 04:11:57 -0400 (Wed, 25 Jul 2012)
New Revision: 21046
Added:
annotations/tags/3.4.0.GA_CP05/
Log:
JBPAPP-7063
12 years, 9 months
Hibernate SVN: r21045 - core/tags.
by hibernate-commits@lists.jboss.org
Author: stliu
Date: 2012-07-25 04:09:22 -0400 (Wed, 25 Jul 2012)
New Revision: 21045
Added:
core/tags/hibernate-3.3.2.GA_CP05/
Log:
JBPAPP-7063
12 years, 9 months
Hibernate SVN: r21044 - in annotations/branches/v3_4_0_GA_CP/src: main/java/org/hibernate/cfg/annotations and 4 other directories.
by hibernate-commits@lists.jboss.org
Author: stliu
Date: 2012-07-25 03:13:17 -0400 (Wed, 25 Jul 2012)
New Revision: 21044
Added:
annotations/branches/v3_4_0_GA_CP/src/test/java/org/hibernate/test/annotations/propertyref/
annotations/branches/v3_4_0_GA_CP/src/test/java/org/hibernate/test/annotations/propertyref/DoesNotWork.java
annotations/branches/v3_4_0_GA_CP/src/test/java/org/hibernate/test/annotations/propertyref/DoesNotWorkPk.java
annotations/branches/v3_4_0_GA_CP/src/test/java/org/hibernate/test/annotations/propertyref/DoesNotWorkTest.java
annotations/branches/v3_4_0_GA_CP/src/test/java/org/hibernate/test/annotations/propertyref/DoesNotWorkWithHbmTest.java
annotations/branches/v3_4_0_GA_CP/src/test/resources/org/hibernate/test/annotations/propertyref/
annotations/branches/v3_4_0_GA_CP/src/test/resources/org/hibernate/test/annotations/propertyref/Mapping.hbm.xml
annotations/branches/v3_4_0_GA_CP/src/test/resources/org/hibernate/test/annotations/propertyref/import.sql
Modified:
annotations/branches/v3_4_0_GA_CP/src/main/java/org/hibernate/cfg/BinderHelper.java
annotations/branches/v3_4_0_GA_CP/src/main/java/org/hibernate/cfg/annotations/CollectionBinder.java
annotations/branches/v3_4_0_GA_CP/src/main/java/org/hibernate/cfg/annotations/TableBinder.java
Log:
JBPAPP-6476 HHH-6204 - JoinColumn on non key field fails to populate collection
Modified: annotations/branches/v3_4_0_GA_CP/src/main/java/org/hibernate/cfg/BinderHelper.java
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/main/java/org/hibernate/cfg/BinderHelper.java 2012-07-25 07:11:30 UTC (rev 21043)
+++ annotations/branches/v3_4_0_GA_CP/src/main/java/org/hibernate/cfg/BinderHelper.java 2012-07-25 07:13:17 UTC (rev 21044)
@@ -90,13 +90,129 @@
return clone;
}
+// public static void createSyntheticPropertyReference(
+// Ejb3JoinColumn[] columns,
+// PersistentClass ownerEntity,
+// PersistentClass associatedEntity,
+// Value value,
+// boolean inverse, ExtendedMappings mappings
+// ) {
+// //associated entity only used for more precise exception, yuk!
+// if ( columns[0].isImplicit() || StringHelper.isNotEmpty( columns[0].getMappedBy() ) ) return;
+// int fkEnum = Ejb3JoinColumn.checkReferencedColumnsType( columns, ownerEntity, mappings );
+// PersistentClass associatedClass = columns[0].getPropertyHolder() != null ?
+// columns[0].getPropertyHolder().getPersistentClass() :
+// null;
+// if ( Ejb3JoinColumn.NON_PK_REFERENCE == fkEnum ) {
+// /**
+// * Create a synthetic property to refer to including an
+// * embedded component value containing all the properties
+// * mapped to the referenced columns
+// * We need to shallow copy those properties to mark them
+// * as non insertable / non updatable
+// */
+// StringBuilder propertyNameBuffer = new StringBuilder( "_" );
+// propertyNameBuffer.append( associatedClass.getEntityName().replace( '.', '_' ) );
+// propertyNameBuffer.append( "_" ).append( columns[0].getPropertyName() );
+// String syntheticPropertyName = propertyNameBuffer.toString();
+// //find properties associated to a certain column
+// Object columnOwner = findColumnOwner( ownerEntity, columns[0].getReferencedColumn(), mappings );
+// List<Property> properties = findPropertiesByColumns( columnOwner, columns, mappings );
+// //create an embeddable component
+// Property synthProp = null;
+// if ( properties != null ) {
+// //todo how about properties.size() == 1, this should be much simpler
+// Component embeddedComp = columnOwner instanceof PersistentClass ?
+// new Component( (PersistentClass) columnOwner ) :
+// new Component( (Join) columnOwner );
+// embeddedComp.setEmbedded( true );
+// embeddedComp.setNodeName( syntheticPropertyName );
+// embeddedComp.setComponentClassName( embeddedComp.getOwner().getClassName() );
+// for (Property property : properties) {
+// Property clone = BinderHelper.shallowCopy( property );
+// clone.setInsertable( false );
+// clone.setUpdateable( false );
+// clone.setNaturalIdentifier( false );
+// embeddedComp.addProperty( clone );
+// }
+// synthProp = new Property();
+// synthProp.setName( syntheticPropertyName );
+// synthProp.setNodeName( syntheticPropertyName );
+// synthProp.setPersistentClass( ownerEntity );
+// synthProp.setUpdateable( false );
+// synthProp.setInsertable( false );
+// synthProp.setValue( embeddedComp );
+// synthProp.setPropertyAccessorName( "embedded" );
+// ownerEntity.addProperty( synthProp );
+// //make it unique
+// TableBinder.createUniqueConstraint( embeddedComp );
+// }
+// else {
+// //TODO use a ToOne type doing a second select
+// StringBuilder columnsList = new StringBuilder();
+// columnsList.append( "referencedColumnNames(" );
+// for (Ejb3JoinColumn column : columns) {
+// columnsList.append( column.getReferencedColumn() ).append( ", " );
+// }
+// columnsList.setLength( columnsList.length() - 2 );
+// columnsList.append( ") " );
+//
+// if ( associatedEntity != null ) {
+// //overidden destination
+// columnsList.append( "of " )
+// .append( associatedEntity.getEntityName() )
+// .append( "." )
+// .append( columns[0].getPropertyName() )
+// .append( " " );
+// }
+// else {
+// if ( columns[0].getPropertyHolder() != null ) {
+// columnsList.append( "of " )
+// .append( columns[0].getPropertyHolder().getEntityName() )
+// .append( "." )
+// .append( columns[0].getPropertyName() )
+// .append( " " );
+// }
+// }
+// columnsList.append( "referencing " )
+// .append( ownerEntity.getEntityName() )
+// .append( " not mapped to a single property" );
+// throw new AnnotationException( columnsList.toString() );
+// }
+//
+// /**
+// * creating the property ref to the new synthetic property
+// */
+// if ( value instanceof ToOne ) {
+// ( (ToOne) value ).setReferencedPropertyName( syntheticPropertyName );
+// mappings.addUniquePropertyReference( ownerEntity.getEntityName(), syntheticPropertyName );
+// }
+// else if ( value instanceof Collection ) {
+// ( (Collection) value ).setReferencedPropertyName( syntheticPropertyName );
+// //not unique because we could create a mtm wo association table
+// mappings.addPropertyReference( ownerEntity.getEntityName(), syntheticPropertyName );
+// }
+// else {
+// throw new AssertionFailure(
+// "Do a property ref on an unexpected Value type: "
+// + value.getClass().getName()
+// );
+// }
+// mappings.addPropertyReferencedAssociation(
+// ( inverse ? "inverse__" : "" ) + associatedClass.getEntityName(),
+// columns[0].getPropertyName(),
+// syntheticPropertyName
+// );
+// }
+// }
+
public static void createSyntheticPropertyReference(
Ejb3JoinColumn[] columns,
PersistentClass ownerEntity,
PersistentClass associatedEntity,
Value value,
- boolean inverse, ExtendedMappings mappings
- ) {
+ boolean inverse,
+ ExtendedMappings mappings) {
//associated entity only used for more precise exception, yuk!
if ( columns[0].isImplicit() || StringHelper.isNotEmpty( columns[0].getMappedBy() ) ) return;
int fkEnum = Ejb3JoinColumn.checkReferencedColumnsType( columns, ownerEntity, mappings );
@@ -133,6 +249,7 @@
clone.setInsertable( false );
clone.setUpdateable( false );
clone.setNaturalIdentifier( false );
+ clone.setGeneration( property.getGeneration() );
embeddedComp.addProperty( clone );
}
synthProp = new Property();
@@ -207,6 +324,7 @@
}
+
private static List<Property> findPropertiesByColumns(
Object columnOwner, Ejb3JoinColumn[] columns,
ExtendedMappings mappings
Modified: annotations/branches/v3_4_0_GA_CP/src/main/java/org/hibernate/cfg/annotations/CollectionBinder.java
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/main/java/org/hibernate/cfg/annotations/CollectionBinder.java 2012-07-25 07:11:30 UTC (rev 21043)
+++ annotations/branches/v3_4_0_GA_CP/src/main/java/org/hibernate/cfg/annotations/CollectionBinder.java 2012-07-25 07:13:17 UTC (rev 21044)
@@ -1027,7 +1027,7 @@
}
else {
keyVal = (KeyValue) collValue.getOwner()
- .getRecursiveProperty( propRef )
+ .getReferencedProperty( propRef )
.getValue();
}
DependantValue key = new DependantValue( collValue.getCollectionTable(), keyVal );
Modified: annotations/branches/v3_4_0_GA_CP/src/main/java/org/hibernate/cfg/annotations/TableBinder.java
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/main/java/org/hibernate/cfg/annotations/TableBinder.java 2012-07-25 07:11:30 UTC (rev 21043)
+++ annotations/branches/v3_4_0_GA_CP/src/main/java/org/hibernate/cfg/annotations/TableBinder.java 2012-07-25 07:13:17 UTC (rev 21044)
@@ -256,7 +256,7 @@
"No property ref found while expected"
);
}
- Property synthProp = referencedEntity.getRecursiveProperty( referencedPropertyName );
+ Property synthProp = referencedEntity.getReferencedProperty( referencedPropertyName );
if ( synthProp == null ) {
throw new AssertionFailure(
"Cannot find synthProp: " + referencedEntity.getEntityName() + "." + referencedPropertyName
Added: annotations/branches/v3_4_0_GA_CP/src/test/java/org/hibernate/test/annotations/propertyref/DoesNotWork.java
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/test/java/org/hibernate/test/annotations/propertyref/DoesNotWork.java (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/test/java/org/hibernate/test/annotations/propertyref/DoesNotWork.java 2012-07-25 07:13:17 UTC (rev 21044)
@@ -0,0 +1,103 @@
+package org.hibernate.test.annotations.propertyref;
+
+
+import javax.persistence.Column;
+import javax.persistence.EmbeddedId;
+import javax.persistence.Entity;
+import javax.persistence.JoinColumn;
+import javax.persistence.JoinTable;
+import javax.persistence.Table;
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.hibernate.annotations.CollectionOfElements;
+import org.hibernate.annotations.IndexColumn;
+
+/**
+ * @author Steve Ebersole
+ */
+@Entity
+@Table(name = "vgras007_v031")
+public class DoesNotWork implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @EmbeddedId
+ private DoesNotWorkPk doesNotWorkPk;
+
+ @Column(name = "production_credits_tid", insertable = false, updatable = false)
+ private Long globAdditInfoTid;
+
+ @CollectionOfElements
+ @JoinTable(
+ name = "vgras029_v031",
+ joinColumns = @JoinColumn(name = "text_id", referencedColumnName = "production_credits_tid")
+ )
+ @Column(name = "text_part", insertable = false, updatable = false)
+ @IndexColumn(name = "seq_no", base = 1)
+ private List<String> globalNotes = new ArrayList<String>();
+
+ public DoesNotWork() {
+ }
+
+ public DoesNotWork(DoesNotWorkPk doesNotWorkPk) {
+ this.doesNotWorkPk = doesNotWorkPk;
+ }
+
+ public DoesNotWorkPk getDoesNotWorkPk() {
+ return doesNotWorkPk;
+ }
+
+ public void setDoesNotWorkPk(DoesNotWorkPk doesNotWorkPk) {
+ this.doesNotWorkPk = doesNotWorkPk;
+ }
+
+ public List<String> getGlobalNotes() {
+ return globalNotes;
+ }
+
+ public void setGlobalNotes(List<String> globalNotes) {
+ this.globalNotes = globalNotes;
+ }
+
+ public Long getGlobAdditInfoTid() {
+ return globAdditInfoTid;
+ }
+
+ public void setGlobAdditInfoTid(Long globAdditInfoTid) {
+ this.globAdditInfoTid = globAdditInfoTid;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((doesNotWorkPk == null) ? 0 : doesNotWorkPk.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if ( this == obj ) {
+ return true;
+ }
+ if ( obj == null ) {
+ return false;
+ }
+ if ( !(obj instanceof DoesNotWork) ) {
+ return false;
+ }
+ DoesNotWork other = (DoesNotWork) obj;
+ if ( doesNotWorkPk == null ) {
+ if ( other.doesNotWorkPk != null ) {
+ return false;
+ }
+ }
+ else if ( !doesNotWorkPk.equals( other.doesNotWorkPk ) ) {
+ return false;
+ }
+ return true;
+ }
+
+}
Added: annotations/branches/v3_4_0_GA_CP/src/test/java/org/hibernate/test/annotations/propertyref/DoesNotWorkPk.java
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/test/java/org/hibernate/test/annotations/propertyref/DoesNotWorkPk.java (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/test/java/org/hibernate/test/annotations/propertyref/DoesNotWorkPk.java 2012-07-25 07:13:17 UTC (rev 21044)
@@ -0,0 +1,78 @@
+package org.hibernate.test.annotations.propertyref;
+
+
+import javax.persistence.Column;
+import javax.persistence.Embeddable;
+import java.io.Serializable;
+
+/**
+ * @author Steve Ebersole
+ */
+@Embeddable
+public class DoesNotWorkPk implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ @Column(name = "track_no")
+ private String id1;
+
+ @Column(name = "track_ext")
+ private String id2;
+
+ public String getId1() {
+ return id1;
+ }
+
+ public void setId1(String id1) {
+ this.id1 = id1;
+ }
+
+ public String getId2() {
+ return id2;
+ }
+
+ public void setId2(String id2) {
+ this.id2 = id2;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((id1 == null) ? 0 : id1.hashCode());
+ result = prime * result + ((id2 == null) ? 0 : id2.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if ( this == obj ) {
+ return true;
+ }
+ if ( obj == null ) {
+ return false;
+ }
+ if ( !(obj instanceof DoesNotWorkPk) ) {
+ return false;
+ }
+ DoesNotWorkPk other = (DoesNotWorkPk) obj;
+ if ( id1 == null ) {
+ if ( other.id1 != null ) {
+ return false;
+ }
+ }
+ else if ( !id1.equals( other.id1 ) ) {
+ return false;
+ }
+ if ( id2 == null ) {
+ if ( other.id2 != null ) {
+ return false;
+ }
+ }
+ else if ( !id2.equals( other.id2 ) ) {
+ return false;
+ }
+ return true;
+ }
+
+}
\ No newline at end of file
Added: annotations/branches/v3_4_0_GA_CP/src/test/java/org/hibernate/test/annotations/propertyref/DoesNotWorkTest.java
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/test/java/org/hibernate/test/annotations/propertyref/DoesNotWorkTest.java (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/test/java/org/hibernate/test/annotations/propertyref/DoesNotWorkTest.java 2012-07-25 07:13:17 UTC (rev 21044)
@@ -0,0 +1,59 @@
+package org.hibernate.test.annotations.propertyref;
+
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.util.List;
+
+import org.hibernate.Session;
+import org.hibernate.cfg.Configuration;
+import org.hibernate.cfg.Environment;
+import org.hibernate.jdbc.Work;
+import org.hibernate.test.annotations.TestCase;
+
+/**
+ * @author Steve Ebersole
+ */
+public class DoesNotWorkTest extends TestCase {
+ @Override
+ protected Class<?>[] getAnnotatedClasses() {
+ return new Class[] {DoesNotWork.class};
+ }
+
+ @Override
+ protected void configure(Configuration configuration) {
+ super.configure( configuration );
+ configuration.setProperty( Environment.USE_SECOND_LEVEL_CACHE, "false" );
+ configuration.setProperty( Environment.HBM2DDL_IMPORT_FILES, "/org/hibernate/test/annotations/propertyref/import.sql" );
+ }
+
+ public void testIt() {
+ DoesNotWorkPk pk = new DoesNotWorkPk();
+ pk.setId1( "ZZZ" );
+ pk.setId2( "00" );
+
+// {
+// Session session = openSession();
+// session.beginTransaction();
+// DoesNotWork entity = new DoesNotWork( pk );
+// entity.setGlobalNotes( Arrays.asList( "My first note!" ) );
+// session.save( entity );
+// session.getTransaction().commit();
+// session.close();
+// }
+
+ {
+ Session session = openSession();
+ session.beginTransaction();
+ DoesNotWork entity = (DoesNotWork) session.get( DoesNotWork.class, pk );
+ List<String> notes = entity.getGlobalNotes();
+ if ( notes != null && notes.size() > 0 ) {
+ for ( String note : notes ) {
+ System.out.println( note );
+ }
+ }
+ session.delete( entity );
+ session.getTransaction().commit();
+ session.close();
+ }
+ }
+}
Added: annotations/branches/v3_4_0_GA_CP/src/test/java/org/hibernate/test/annotations/propertyref/DoesNotWorkWithHbmTest.java
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/test/java/org/hibernate/test/annotations/propertyref/DoesNotWorkWithHbmTest.java (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/test/java/org/hibernate/test/annotations/propertyref/DoesNotWorkWithHbmTest.java 2012-07-25 07:13:17 UTC (rev 21044)
@@ -0,0 +1,64 @@
+package org.hibernate.test.annotations.propertyref;
+
+
+import java.util.List;
+
+import org.hibernate.Session;
+import org.hibernate.cfg.Configuration;
+
+import org.hibernate.cfg.Environment;
+import org.hibernate.junit.functional.FunctionalTestCase;
+
+/**
+ * @author Steve Ebersole
+ */
+public class DoesNotWorkWithHbmTest extends FunctionalTestCase {
+ public DoesNotWorkWithHbmTest(String string) {
+ super( string );
+ }
+
+ @Override
+ public String[] getMappings() {
+ return new String[] { "annotations/propertyref/Mapping.hbm.xml" };
+ }
+
+ @Override
+ public void configure(Configuration configuration) {
+ super.configure( configuration );
+ configuration.setProperty( Environment.USE_SECOND_LEVEL_CACHE, "false" );
+ configuration.setProperty( Environment.HBM2DDL_IMPORT_FILES, "/org/hibernate/test/annotations/propertyref/import.sql" );
+ }
+
+ public void testIt() {
+ DoesNotWorkPk pk = new DoesNotWorkPk();
+ pk.setId1( "ZZZ" );
+ pk.setId2( "00" );
+
+// {
+// Session session = openSession();
+// session.beginTransaction();
+// DoesNotWork entity = new DoesNotWork( pk );
+// entity.setGlobalNotes( Arrays.asList( "My first note!" ) );
+// session.save( entity );
+// session.getTransaction().commit();
+// session.close();
+// }
+
+ {
+ Session session = openSession();
+ session.beginTransaction();
+ DoesNotWork entity = (DoesNotWork) session.get( DoesNotWork.class, pk );
+ assertNotNull( entity );
+ List<String> notes = entity.getGlobalNotes();
+ assertNotNull( notes );
+ assertEquals( 2, notes.size() );
+ for ( String s : notes ) {
+ System.out.println( s );
+ }
+ session.delete( entity );
+ session.getTransaction().commit();
+ session.close();
+ }
+ }
+}
+
Added: annotations/branches/v3_4_0_GA_CP/src/test/resources/org/hibernate/test/annotations/propertyref/Mapping.hbm.xml
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/test/resources/org/hibernate/test/annotations/propertyref/Mapping.hbm.xml (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/test/resources/org/hibernate/test/annotations/propertyref/Mapping.hbm.xml 2012-07-25 07:13:17 UTC (rev 21044)
@@ -0,0 +1,19 @@
+<?xml version="1.0"?>
+<!DOCTYPE hibernate-mapping PUBLIC
+ "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
+ "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
+
+<hibernate-mapping package="org.hibernate.test.annotations.propertyref">
+ <class name="DoesNotWork" table="vgras007_v031">
+ <composite-id name="doesNotWorkPk" class="DoesNotWorkPk">
+ <key-property name="id1" column="track_no"/>
+ <key-property name="id2" column="track_ext"/>
+ </composite-id>
+ <property name="globAdditInfoTid" column="production_credits_tid"/>
+ <list name="globalNotes" table="vgras029_v031">
+ <key column="text_id" property-ref="globAdditInfoTid"/>
+ <list-index column="seq_no" base="1"/>
+ <element column="text_part" type="string"/>
+ </list>
+ </class>
+</hibernate-mapping>
\ No newline at end of file
Added: annotations/branches/v3_4_0_GA_CP/src/test/resources/org/hibernate/test/annotations/propertyref/import.sql
===================================================================
--- annotations/branches/v3_4_0_GA_CP/src/test/resources/org/hibernate/test/annotations/propertyref/import.sql (rev 0)
+++ annotations/branches/v3_4_0_GA_CP/src/test/resources/org/hibernate/test/annotations/propertyref/import.sql 2012-07-25 07:13:17 UTC (rev 21044)
@@ -0,0 +1,3 @@
+INSERT INTO vgras007_v031 VALUES ('ZZZ','00',1);
+INSERT INTO vgras029_v031 VALUES (1,'Foo Foo Foo',1);
+INSERT INTO vgras029_v031 VALUES (1,'Bar Bar Bar',2);
\ No newline at end of file
12 years, 9 months