public Property getProperty(String propertyName) throws MappingException { Iterator iter = getPropertyClosureIterator(); Property identifierProperty = getIdentifierProperty(); if ( identifierProperty != null && identifierProperty.getName().equals( StringHelper.root( propertyName ) ) ) { return identifierProperty; } else { return getProperty( propertyName, iter ); } }
@SuppressWarnings({"unchecked"}) @Test public void testJoinColumnName() { Iterator<Column> columns = metadata().getEntityBinding( "org.hibernate.envers.test.integration.naming.JoinNamingRefIngEntity_AUD" ).getProperty( "reference_id" ).getColumnIterator(); assertTrue( columns.hasNext() ); assertEquals( "jnree_column_reference", columns.next().getName() ); assertFalse( columns.hasNext() ); } }
@Test public void testNotNullOnlyAppliedIfEmbeddedIsNotNullItself() throws Exception { PersistentClass classMapping = metadata().getEntityBinding( Tv.class.getName() ); Property property = classMapping.getProperty( "tuner.frequency" ); Column serialColumn = (Column) property.getColumnIterator().next(); assertEquals( "Validator annotations are applied on tuner as it is @NotNull", false, serialColumn.isNullable() ); property = classMapping.getProperty( "recorder.time" ); serialColumn = (Column) property.getColumnIterator().next(); assertEquals( "Validator annotations are applied on tuner as it is @NotNull", true, serialColumn.isNullable() ); }
@Test public void testDDLDisabled() { PersistentClass classMapping = metadata().getEntityBinding( Address.class.getName() ); Column countryColumn = (Column) classMapping.getProperty( "country" ).getColumnIterator().next(); assertTrue( "DDL constraints are applied", countryColumn.isNullable() ); }
@Test public void testApplyOnManyToOne() throws Exception { PersistentClass classMapping = metadata().getEntityBinding( TvOwner.class.getName() ); Column serialColumn = (Column) classMapping.getProperty( "tv" ).getColumnIterator().next(); assertEquals( "Validator annotations not applied on associations", false, serialColumn.isNullable() ); }
@Test public void testSingleTableAvoidNotNull() throws Exception { PersistentClass classMapping = metadata().getEntityBinding( Rock.class.getName() ); Column serialColumn = (Column) classMapping.getProperty( "bit" ).getColumnIterator().next(); assertTrue( "Notnull should not be applied on single tables", serialColumn.isNullable() ); }
@Test public void testDatabaseColumnNames() { PersistentClass classMapping = metadata().getEntityBinding( Customers.class.getName() ); Column stateColumn = (Column) classMapping.getProperty( "specified_column" ).getColumnIterator().next(); assertEquals( "CN_specified_column", stateColumn.getName() ); }
@Test public void testBasicDDL() { PersistentClass classMapping = metadata().getEntityBinding( Address.class.getName() ); Column stateColumn = (Column) classMapping.getProperty( "state" ).getColumnIterator().next(); assertEquals( stateColumn.getLength(), 3 ); Column zipColumn = (Column) classMapping.getProperty( "zip" ).getColumnIterator().next(); assertEquals( zipColumn.getLength(), 5 ); assertFalse( zipColumn.isNullable() ); }
@Test @TestForIssue( jiraKey = "HHH-5281" ) public void testLengthConstraint() throws Exception { PersistentClass classMapping = metadata().getEntityBinding( Tv.class.getName() ); Column modelColumn = (Column) classMapping.getProperty( "model" ).getColumnIterator().next(); assertEquals( modelColumn.getLength(), 5 ); }
@Test public void testAttributeAccessorConfiguration() { final Metadata metadata = new MetadataSources( serviceRegistry ) .addAnnotatedClass( Foo.class ) .buildMetadata(); final Property property = metadata.getEntityBinding( Foo.class.getName() ).getProperty( "name" ); assertEquals( BasicAttributeAccessor.class.getName(), property.getPropertyAccessorName() ); }
@Test @TestForIssue(jiraKey = "HHH-5848") public void testDatabaseTableNames() { PersistentClass classMapping = metadata().getEntityBinding( Item.class.getName() ); Column secTabColumn = (Column) classMapping.getProperty( "specialPrice" ).getColumnIterator().next(); assertEquals( "TAB_ITEMS_SEC", secTabColumn.getValue().getTable().getName() ); Column tabColumn = (Column) classMapping.getProperty( "price" ).getColumnIterator().next(); assertEquals( "TAB_ITEMS", tabColumn.getValue().getTable().getName() ); } }
@Test @TestForIssue( jiraKey = "HHH-8630" ) public void testIt() { final PersistentClass entityBinding = metadata().getEntityBinding( AggregatedTypeValue.class.getName() ); final Property attributesBinding = entityBinding.getProperty( "attributes" ); final org.hibernate.mapping.Map attributesMap = (org.hibernate.mapping.Map) attributesBinding.getValue(); final SimpleValue mapKey = assertTyping( SimpleValue.class, attributesMap.getIndex() ); final BasicType mapKeyType = assertTyping( BasicType.class, mapKey.getType() ); assertTrue( String.class.equals( mapKeyType.getReturnedClass() ) ); // let's also make sure the @MapKeyColumn got applied assertThat( mapKey.getColumnSpan(), is(1) ); final org.hibernate.mapping.Column mapKeyColumn = assertTyping( org.hibernate.mapping.Column .class, mapKey.getColumnIterator().next() ); assertThat( mapKeyColumn.getName(), equalTo( "attribute_name" ) ); }
@Test public void testSortedSetDefinitionInHbmXml() { final PersistentClass entityMapping = metadata().getEntityBinding( Search.class.getName() ); final Property sortedSetProperty = entityMapping.getProperty( "searchResults" ); final Collection sortedSetMapping = assertTyping( Collection.class, sortedSetProperty.getValue() ); assertTrue( "SortedSet mapping not interpreted as sortable", sortedSetMapping.isSorted() ); final Property sortedMapProperty = entityMapping.getProperty( "tokens" ); final Collection sortedMapMapping = assertTyping( Collection.class, sortedMapProperty.getValue() ); assertTrue( "SortedMap mapping not interpreted as sortable", sortedMapMapping.isSorted() ); }
@Test public void testComparator() { PersistentClass cm = metadata.getEntityBinding( "org.hibernate.test.legacy.Wicked" ); Property property = cm.getProperty("sortedEmployee"); Collection col = (Collection) property.getValue(); assertEquals(col.getComparatorClassName(),"org.hibernate.test.legacy.NonExistingComparator"); } }
@Test public void testMappingAttributeWithLobAndAttributeConverter() { final Metadata metadata = new MetadataSources( ssr ) .addAnnotatedClass( EntityImpl.class ) .buildMetadata(); final Type type = metadata.getEntityBinding( EntityImpl.class.getName() ).getProperty( "status" ).getType(); final AttributeConverterTypeAdapter concreteType = assertTyping( AttributeConverterTypeAdapter.class, type ); assertEquals( Types.BLOB, concreteType.getSqlTypeDescriptor().getSqlType() ); }
@Test public void testCollectionAsBasic() { StandardServiceRegistry ssr = new StandardServiceRegistryBuilder().build(); try { Metadata metadata = new MetadataSources(ssr).addAnnotatedClass( Post.class ) .getMetadataBuilder().applyBasicType( new DelimitedStringsType() ) .build(); PersistentClass postBinding = metadata.getEntityBinding( Post.class.getName() ); Property tagsAttribute = postBinding.getProperty( "tags" ); } finally { StandardServiceRegistryBuilder.destroy( ssr ); } }
@Override public void doTestWork(StandardServiceRegistry ssr) { MetadataImplementor metadata = (MetadataImplementor) new MetadataSources( ssr ) .addAnnotatedClass( E1.class ) .buildMetadata(); metadata.validate(); PersistentClass entityBinding = metadata.getEntityBinding( E1.class.getName() ); org.hibernate.mapping.Column idColumn = extractColumn( entityBinding.getIdentifier().getColumnIterator() ); assertTrue( isQuoted( idColumn.getSqlType(), ssr ) ); org.hibernate.mapping.Column otherColumn = extractColumn( entityBinding.getProperty( "other" ).getColumnIterator() ); assertTrue( isQuoted( otherColumn.getSqlType(), ssr ) ); } }
@Override public void doTestWork(StandardServiceRegistry ssr) { MetadataImplementor metadata = (MetadataImplementor) new MetadataSources( ssr ) .addAnnotatedClass( E2.class ) .buildMetadata(); metadata.validate(); PersistentClass entityBinding = metadata.getEntityBinding( E2.class.getName() ); org.hibernate.mapping.Column idColumn = extractColumn( entityBinding.getIdentifier().getColumnIterator() ); assertTrue( isQuoted( idColumn.getSqlType(), ssr ) ); org.hibernate.mapping.Column otherColumn = extractColumn( entityBinding.getProperty( "other" ).getColumnIterator() ); assertTrue( isQuoted( otherColumn.getSqlType(), ssr ) ); } }
@Override public void doTestWork(StandardServiceRegistry ssr) { MetadataImplementor metadata = (MetadataImplementor) new MetadataSources( ssr ) .addAnnotatedClass( E1.class ) .buildMetadata(); metadata.validate(); PersistentClass entityBinding = metadata.getEntityBinding( E1.class.getName() ); org.hibernate.mapping.Column idColumn = extractColumn( entityBinding.getIdentifier().getColumnIterator() ); assertTrue( isQuoted( idColumn.getSqlType(), ssr ) ); org.hibernate.mapping.Column otherColumn = extractColumn( entityBinding.getProperty( "other" ).getColumnIterator() ); assertTrue( isQuoted( otherColumn.getSqlType(), ssr ) ); } }
@Override public void doTestWork(StandardServiceRegistry ssr) { MetadataImplementor metadata = (MetadataImplementor) new MetadataSources( ssr ) .addAnnotatedClass( E2.class ) .buildMetadata(); metadata.validate(); PersistentClass entityBinding = metadata.getEntityBinding( E2.class.getName() ); org.hibernate.mapping.Column idColumn = extractColumn( entityBinding.getIdentifier().getColumnIterator() ); assertTrue( !isQuoted( idColumn.getSqlType(), ssr ) ); org.hibernate.mapping.Column otherColumn = extractColumn( entityBinding.getProperty( "other" ).getColumnIterator() ); assertTrue( !isQuoted( otherColumn.getSqlType(), ssr ) ); } }