org.hibernate.boot.MetadataBuilder.build()方法的使用及代码示例

x33g5p2x  于2022-01-25 转载在 其他  
字(11.4k)|赞(0)|评价(0)|浏览(91)

本文整理了Java中org.hibernate.boot.MetadataBuilder.build()方法的一些代码示例,展示了MetadataBuilder.build()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。MetadataBuilder.build()方法的具体详情如下:
包路径:org.hibernate.boot.MetadataBuilder
类名称:MetadataBuilder
方法名:build

MetadataBuilder.build介绍

[英]Actually build the metamodel
[中]实际构建元模型

代码示例

代码示例来源:origin: hibernate/hibernate-orm

/**
 * Short-hand form of calling {@link #getMetadataBuilder()} and using its
 * {@link org.hibernate.boot.MetadataBuilder#build()} method in cases where the application wants
 * to accept the defaults.
 *
 * @return The built metadata.
 */
public Metadata buildMetadata() {
  return getMetadataBuilder().build();
}

代码示例来源:origin: hibernate/hibernate-orm

public Metadata buildMetadata(StandardServiceRegistry serviceRegistry) {
  return getMetadataBuilder( serviceRegistry ).build();
}

代码示例来源:origin: hibernate/hibernate-orm

@Test
public void testHbmXmlHandling() {
  final Metadata metadata = new MetadataSources( ssr )
      .addResource( "org/hibernate/test/namingstrategy/synchronizedTables/mapping.hbm.xml" )
      .getMetadataBuilder()
      .applyPhysicalNamingStrategy( TestingPhysicalNamingStrategy.INSTANCE )
      .build();
  verify( metadata.getEntityBinding( DynamicEntity.class.getName() ) );
}

代码示例来源:origin: hibernate/hibernate-orm

@Test
public void testAnnotationHandling() {
  final Metadata metadata = new MetadataSources( ssr )
      .addAnnotatedClass( DynamicEntity.class )
      .getMetadataBuilder()
      .applyPhysicalNamingStrategy( TestingPhysicalNamingStrategy.INSTANCE )
      .build();
  verify( metadata.getEntityBinding( DynamicEntity.class.getName() ) );
}

代码示例来源:origin: hibernate/hibernate-orm

@Test
public void testWithJpaCompliantNamingStrategy() throws Exception {
  Metadata metadata = new MetadataSources( serviceRegistry )
      .addAnnotatedClass( A.class )
      .addAnnotatedClass( AddressEntry.class )
      .getMetadataBuilder()
      .applyImplicitNamingStrategy( ImplicitNamingStrategyJpaCompliantImpl.INSTANCE )
      .build();
  Collection collectionBinding = metadata.getCollectionBinding( A.class.getName() + ".address" );
  assertEquals(
      "Expecting A#address collection table name (implicit) to be [A_address] per JPA spec (section 11.1.8)",
      "A_ADDRESS",
      collectionBinding.getCollectionTable().getQuotedName().toUpperCase(Locale.ROOT)
  );
}

代码示例来源:origin: hibernate/hibernate-orm

@BeforeClassOnce
public void setUp() {
  ssr = new StandardServiceRegistryBuilder().build();
  metadata = (MetadataImplementor) new MetadataSources( ssr )
      .addAnnotatedClass( VMTimestamped.class )
      .addAnnotatedClass( DBTimestamped.class )
      .getMetadataBuilder()
      .build();
}

代码示例来源:origin: hibernate/hibernate-orm

@Test
public void testWithCustomNamingStrategy() throws Exception {
  new MetadataSources( serviceRegistry )
      .addAnnotatedClass(Address.class)
      .addAnnotatedClass(Person.class)
      .getMetadataBuilder()
      .applyPhysicalNamingStrategy( new DummyNamingStrategy() )
      .build();
}

代码示例来源:origin: hibernate/hibernate-orm

@Test
public void testSessionFactoryInterceptor() {
  Serializable customerId = 1L;
  //tag::events-interceptors-session-factory-scope-example[]
  SessionFactory sessionFactory = new MetadataSources( new StandardServiceRegistryBuilder().build() )
    .addAnnotatedClass( Customer.class )
    .getMetadataBuilder()
    .build()
    .getSessionFactoryBuilder()
    .applyInterceptor( new LoggingInterceptor() )
    .build();
  //end::events-interceptors-session-factory-scope-example[]
  Session session = sessionFactory.openSession();
  session.getTransaction().begin();
  Customer customer = session.get( Customer.class, customerId );
  customer.setName( "Mr. John Doe" );
  //Entity Customer#1 changed from [John Doe, 0] to [Mr. John Doe, 0]
  session.getTransaction().commit();
  session.close();
  sessionFactory.close();
}

代码示例来源:origin: hibernate/hibernate-orm

@Test
public void testWithUpperCaseNamingStrategy() throws Exception {
  Metadata metadata = new MetadataSources( serviceRegistry )
      .addAnnotatedClass(A.class)
      .getMetadataBuilder()
      .applyPhysicalNamingStrategy( new PhysicalNamingStrategyStandardImpl() {
        @Override
        public Identifier toPhysicalColumnName(
            Identifier name, JdbcEnvironment context) {
          return new Identifier( name.getText().toUpperCase(), name.isQuoted() );
        }
      } )
      .build();
  PersistentClass entityBinding = metadata.getEntityBinding( A.class.getName() );
  assertEquals("NAME",
         ((Selectable) entityBinding.getProperty( "name" ).getColumnIterator().next()).getText());
  assertEquals("VALUE",
         ((Selectable) entityBinding.getProperty( "value" ).getColumnIterator().next()).getText());
}

代码示例来源:origin: hibernate/hibernate-orm

@Test
public void testWithCustomNamingStrategy() throws Exception {
  Metadata metadata = new MetadataSources( serviceRegistry )
      .addAnnotatedClass(Address.class)
      .addAnnotatedClass(Person.class)
      .getMetadataBuilder()
      .applyImplicitNamingStrategy( new LongIdentifierNamingStrategy() )
      .build();
  UniqueKey uniqueKey = metadata.getEntityBinding( Address.class.getName()).getTable().getUniqueKeyIterator().next();
  assertEquals( expectedUniqueKeyName(), uniqueKey.getName() );
  org.hibernate.mapping.ForeignKey foreignKey =
      (org.hibernate.mapping.ForeignKey) metadata.getEntityBinding( Address.class.getName()).getTable().getForeignKeyIterator().next();
  assertEquals( expectedForeignKeyName(), foreignKey.getName() );
  org.hibernate.mapping.Index index = metadata.getEntityBinding( Address.class.getName()).getTable().getIndexIterator().next();
  assertEquals( expectedIndexName(), index.getName() );
}

代码示例来源:origin: hibernate/hibernate-orm

@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 );
  }
}

代码示例来源:origin: hibernate/hibernate-orm

protected void buildResources() {
  final StandardServiceRegistryBuilder ssrb = constructStandardServiceRegistryBuilder();
  serviceRegistry = ssrb.build();
  afterStandardServiceRegistryBuilt( serviceRegistry );
  final MetadataSources metadataSources = new MetadataSources( serviceRegistry );
  applyMetadataSources( metadataSources );
  afterMetadataSourcesApplied( metadataSources );
  final MetadataBuilder metadataBuilder = metadataSources.getMetadataBuilder();
  initialize( metadataBuilder );
  configureMetadataBuilder( metadataBuilder );
  metadata = (MetadataImplementor) metadataBuilder.build();
  applyCacheSettings( metadata );
  afterMetadataBuilt( metadata );
  final SessionFactoryBuilder sfb = metadata.getSessionFactoryBuilder();
  initialize( sfb, metadata );
  configureSessionFactoryBuilder( sfb );
  sessionFactory = (SessionFactoryImplementor) sfb.build();
  afterSessionFactoryBuilt( sessionFactory );
}

代码示例来源:origin: hibernate/hibernate-orm

@BeforeClassOnce
public void setUp() {
  ssr = new StandardServiceRegistryBuilder().build();
  metadata = (MetadataImplementor) new MetadataSources( ssr )
      .addAnnotatedClass( Category.class )
      .addAnnotatedClass( Item.class )
      .addAnnotatedClass( Workflow.class )
      .getMetadataBuilder()
      .applyImplicitNamingStrategy( new MyNamingStrategy() )
      .build();
}

代码示例来源:origin: hibernate/hibernate-orm

@Test
  @TestForIssue(jiraKey = "HHH-12791")
  public void testOnlyOneProxyClassGenerated() {
    StandardServiceRegistry ssr = new StandardServiceRegistryBuilder().build();

    try {
      Metadata metadata = new MetadataSources( ssr ).addAnnotatedClass( Person.class )
          .getMetadataBuilder().applyBasicType( new DelimitedStringsType() )
          .build();
      PersistentClass persistentClass = metadata.getEntityBinding( Person.class.getName() );

      ComponentType componentType1 = (ComponentType) persistentClass.getIdentifierMapper().getType();
      Object instance1 = componentType1.instantiate( EntityMode.POJO );

      ComponentType componentType2 = (ComponentType) persistentClass.getIdentifierMapper().getType();
      Object instance2 = componentType2.instantiate( EntityMode.POJO );

      assertEquals( instance1.getClass(), instance2.getClass() );
    }
    finally {
      StandardServiceRegistryBuilder.destroy( ssr );
    }
  }
}

代码示例来源:origin: hibernate/hibernate-orm

@Test
@TestForIssue( jiraKey = "HHH-9908" )
public void testCollectionJoinTableNamingBase() {
  // really the same as the JPA compliant tests; here we just pick up the default ImplicitNamingStrategy
  final MetadataSources metadataSources = new MetadataSources();
  try {
    metadataSources.addAnnotatedClass( Input.class );
    metadataSources.addAnnotatedClass( Ptx.class );
    final Metadata metadata = metadataSources.getMetadataBuilder()
        .build();
    assertSameTableUsed( metadata );
  }
  finally {
    ServiceRegistry metaServiceRegistry = metadataSources.getServiceRegistry();
    if(metaServiceRegistry instanceof BootstrapServiceRegistry ) {
      BootstrapServiceRegistryBuilder.destroy( metaServiceRegistry );
    }
  }
}

代码示例来源:origin: hibernate/hibernate-orm

@Test
public void testEntityWithMultipleJoinFetchedBags() {
  StandardServiceRegistry standardRegistry = new StandardServiceRegistryBuilder().build();
  Metadata metadata = new MetadataSources( standardRegistry )
      .addAnnotatedClass( Post.class )
      .addAnnotatedClass( PostComment.class )
      .addAnnotatedClass( Tag.class )
      .getMetadataBuilder()
      .build();
  try {
    metadata.buildSessionFactory();
    fail( "MultipleBagFetchException should have been thrown." );
  }
  catch (MultipleBagFetchException expected) {
  }
}

代码示例来源:origin: hibernate/hibernate-orm

@Test
@TestForIssue( jiraKey = "HHH-9908" )
public void testCollectionJoinTableNamingLegacyJpaStrategy() {
  final MetadataSources metadataSources = new MetadataSources();
  try {
    metadataSources.addAnnotatedClass( Input.class );
    metadataSources.addAnnotatedClass( Ptx.class );
    final Metadata metadata = metadataSources.getMetadataBuilder()
        .applyImplicitNamingStrategy( ImplicitNamingStrategyLegacyJpaImpl.INSTANCE )
        .build();
    assertSameTableUsed( metadata );
  }
  finally {
    ServiceRegistry metaServiceRegistry = metadataSources.getServiceRegistry();
    if(metaServiceRegistry instanceof BootstrapServiceRegistry ) {
      BootstrapServiceRegistryBuilder.destroy( metaServiceRegistry );
    }
  }
}

代码示例来源:origin: hibernate/hibernate-orm

@Test
  @TestForIssue( jiraKey = "HHH-9913" )
  public void testNonAggregatedCompositeIdWithPkClass() {
    // HHH-9913 reports a NPE when bootstrapping a SF with non-aggregated composite identifiers
    // in org.hibernate.cache.internal.CacheDataDescriptionImpl#decode
    StandardServiceRegistry ssr = new StandardServiceRegistryBuilder().build();

    try {
      new MetadataSources( ssr )
          .addAnnotatedClass( ItWithPkClass.class )
          .getMetadataBuilder()
          .applySharedCacheMode( SharedCacheMode.ENABLE_SELECTIVE )
          .build()
          .buildSessionFactory();
    }
    finally {
      StandardServiceRegistryBuilder.destroy( ssr );
    }
  }
}

代码示例来源:origin: hibernate/hibernate-orm

@Test
@TestForIssue( jiraKey = "HHH-9908" )
public void testCollectionJoinTableNamingJpaCompliantStrategy() {
  // Even in 4.3, with JPA compliant naming, Hibernate creates an unusable table...
  final MetadataSources metadataSources = new MetadataSources();
  try {
    metadataSources.addAnnotatedClass( Input.class );
    metadataSources.addAnnotatedClass( Ptx.class );
    final Metadata metadata = metadataSources.getMetadataBuilder()
        .applyImplicitNamingStrategy( ImplicitNamingStrategyJpaCompliantImpl.INSTANCE )
        .build();
    assertSameTableUsed( metadata );
  }
  finally {
    ServiceRegistry metaServiceRegistry = metadataSources.getServiceRegistry();
    if(metaServiceRegistry instanceof BootstrapServiceRegistry ) {
      BootstrapServiceRegistryBuilder.destroy( metaServiceRegistry );
    }
  }
}

代码示例来源:origin: hibernate/hibernate-orm

@Test
@TestForIssue( jiraKey = "HHH-9913" )
public void testNonAggregatedCompositeId() {
  // HHH-9913 reports a NPE when bootstrapping a SF with non-aggregated composite identifiers
  // in org.hibernate.cache.internal.CacheDataDescriptionImpl#decode
  StandardServiceRegistry ssr = new StandardServiceRegistryBuilder()
      .applySetting( AvailableSettings.USE_SECOND_LEVEL_CACHE, true )
      .build();
  try {
    new MetadataSources( ssr )
        .addAnnotatedClass( It.class )
        .getMetadataBuilder()
        .applySharedCacheMode( SharedCacheMode.ENABLE_SELECTIVE )
        .build()
        .buildSessionFactory();
  }
  finally {
    StandardServiceRegistryBuilder.destroy( ssr );
  }
}

相关文章