Package org.hibernate.boot

Class MetadataSources

java.lang.Object
org.hibernate.boot.MetadataSources
All Implemented Interfaces:
Serializable

public classMetadataSourcesextendsObjectimplementsSerializable
Entry point for working with sources of O/R mapping metadata, either in the form of annotated classes, or as XML mapping documents.

Note that XML mappings may be expressed using the JPAorm.xml format, or in Hibernate's legacy.hbm.xml format.

An instance ofMetadataSources may be obtained simply by instantiation, usingnew MetadataSources(). The client must register sources and then callbuildMetadata(), or usegetMetadataBuilder() to customize how the sources are processed (by registering naming strategies, etc).

As an alternative to working directly withMetadataSources, andMetadata, a program may useConfiguration.

Since:
5.0
See Also:
  • Constructor Details

  • Method Details

    • isExpectedServiceRegistryType

      protected static boolean isExpectedServiceRegistryType(ServiceRegistry serviceRegistry)
    • getXmlMappingBinderAccess

      public XmlMappingBinderAccess getXmlMappingBinderAccess()
    • getXmlBindings

      @Deprecated(since="7.0")public List<? extendsBinding<? extendsJaxbBindableMappingDescriptor>> getXmlBindings()
    • getMappingXmlBindings

      public List<Binding<JaxbEntityMappingsImpl>> getMappingXmlBindings()
    • getHbmXmlBindings

      public List<Binding<JaxbHbmHibernateMapping>> getHbmXmlBindings()
    • getAnnotatedPackages

      public Collection<String> getAnnotatedPackages()
    • getAnnotatedClasses

      public Collection<Class<?>> getAnnotatedClasses()
    • getAnnotatedClassNames

      public Collection<String> getAnnotatedClassNames()
    • getExtraQueryImports

      public Map<String,Class<?>> getExtraQueryImports()
    • getServiceRegistry

      public ServiceRegistry getServiceRegistry()
    • getMetadataBuilder

      public MetadataBuilder getMetadataBuilder()
      Get a builder for metadata where non-default options can be specified.
      Returns:
      The built metadata.
    • getMetadataBuilder

      @Internalpublic MetadataBuilder getMetadataBuilder(StandardServiceRegistry serviceRegistry)
      Get a builder for metadata where non-default options can be specified.
      Returns:
      The built metadata.
    • buildMetadata

      public Metadata buildMetadata()
      Shorthand form of callinggetMetadataBuilder() and using itsMetadataBuilder.build() method in cases where the application wants to accept the defaults.
      Returns:
      The built metadata.
    • buildMetadata

      public Metadata buildMetadata(StandardServiceRegistry serviceRegistry)
    • addAnnotatedClass

      public MetadataSources addAnnotatedClass(Class<?> annotatedClass)
      Read metadata from the annotations attached to the given class.
      Parameters:
      annotatedClass - The class containing annotations
      Returns:
      this (for method chaining)
    • addAnnotatedClasses

      public MetadataSources addAnnotatedClasses(Class<?>... annotatedClasses)
    • addAnnotatedClassName

      public MetadataSources addAnnotatedClassName(String annotatedClassName)
      Read metadata from the annotations attached to the given class. The important distinction here is that theClass will not be accessed until later, which is important for on-the-fly bytecode enhancement
      Parameters:
      annotatedClassName - The name of a class containing annotations
      Returns:
      this (for method chaining)
    • addAnnotatedClassNames

      public MetadataSources addAnnotatedClassNames(String... annotatedClassNames)
    • addQueryImport

      public MetadataSources addQueryImport(String importedName,Class<?> target)
    • addPackage

      public MetadataSources addPackage(String packageName)
      Read package-level metadata.
      Parameters:
      packageName - java package name without trailing '.', cannot benull
      Returns:
      this (for method chaining)
    • addPackage

      public MetadataSources addPackage(Package packageRef)
      Read package-level metadata.
      Parameters:
      packageRef - Java Package reference
      Returns:
      this (for method chaining)
    • addResource

      public MetadataSources addResource(String name)
      Read mappings as an application resourceName (i.e. classpath lookup).
      Parameters:
      name - The resource name
      Returns:
      this (for method chaining purposes)
    • addFile

      public MetadataSources addFile(String path)
      Read mappings from a particular XML file.

      The given path is resolved usingFile(String).

      Parameters:
      path - The path to a file
      Returns:
      this (for method chaining purposes)
      See Also:
    • addFile

      public MetadataSources addFile(File file)
      Read mappings from a particular XML file.
      Parameters:
      file - The reference to the XML file
      Returns:
      this (for method chaining purposes)
    • addXmlBinding

      public MetadataSources addXmlBinding(Binding<?> binding)
      Add XML mapping bindings created from an arbitrary source by thebinder.
      Parameters:
      binding - The binding
      Returns:
      this (for method chaining purposes)
    • addMappingXmlBinding

      public MetadataSources addMappingXmlBinding(Binding<JaxbEntityMappingsImpl> binding)
      Add abinding formapping.xsd document
      Parameters:
      binding - The binding
      Returns:
      this (for method chaining purposes)
    • addHbmXmlBinding

      public MetadataSources addHbmXmlBinding(Binding<JaxbHbmHibernateMapping> binding)
      Add abinding forhbm.xsd document
      Parameters:
      binding - The binding
      Returns:
      this (for method chaining purposes)
    • addCacheableFile

      public MetadataSources addCacheableFile(String path)
      Add acached mapping file.

      The given path is resolved usingFile(String).

      Parameters:
      path - The path to a file
      Returns:
      this (for method chaining purposes)
      See Also:
    • addCacheableFile

      public MetadataSources addCacheableFile(String path,File cacheDirectory)
      Add acached mapping file.

      The given path is resolved usingFile(String).

      Parameters:
      path - The path to a file
      Returns:
      this (for method chaining purposes)
      See Also:
    • addCacheableFile

      public MetadataSources addCacheableFile(File file)
      Add a cached mapping file. A cached file is a serialized representation of the DOM structure of a particular mapping. It is saved from a previous call as a file with the name{xmlFile}.bin where{xmlFile} is the name of the original mapping file.

      If a cached{xmlFile}.bin exists and is newer than{xmlFile}, the{xmlFile}.bin file will be read directly. Otherwise{xmlFile} is read and then serialized to{xmlFile}.bin for use the next time.

      Parameters:
      file - The cacheable mapping file to be added,{xmlFile} in above discussion.
      Returns:
      this (for method chaining purposes)
    • addCacheableFile

      public MetadataSources addCacheableFile(File file,File cacheDirectory)
      Add a cached mapping file. A cached file is a serialized representation of the DOM structure of a particular mapping. It is saved from a previous call as a file with the name{xmlFile}.bin where{xmlFile} is the name of the original mapping file.

      If a cached{xmlFile}.bin exists and is newer than{xmlFile}, the{xmlFile}.bin file will be read directly. Otherwise{xmlFile} is read and then serialized to{xmlFile}.bin for use the next time.

      Parameters:
      file - The cacheable mapping file to be added,{xmlFile} in above discussion.
      Returns:
      this (for method chaining purposes)
    • addCacheableFileStrictly

      public MetadataSources addCacheableFileStrictly(File file) throwsSerializationException
      INTENDED FOR TESTSUITE USE ONLY!

      Much likeaddCacheableFile(File) except that here we will fail immediately if the cache version cannot be found or used for whatever reason.

      Parameters:
      file - The xml file, not the bin!
      Returns:
      The dom "deserialized" from the cached file.
      Throws:
      SerializationException - Indicates a problem deserializing the cached dom tree
      MappingNotFoundException - Indicates that the cached file was not found or was not usable.
    • addCacheableFileStrictly

      public MetadataSources addCacheableFileStrictly(File file,File cacheDir) throwsSerializationException
      INTENDED FOR TESTSUITE USE ONLY!

      Much likeaddCacheableFile(File) except that here we will fail immediately if the cache version cannot be found or used for whatever reason.

      Parameters:
      file - The xml file, not the bin!
      Returns:
      The dom "deserialized" from the cached file.
      Throws:
      SerializationException - Indicates a problem deserializing the cached dom tree
      MappingNotFoundException - Indicates that the cached file was not found or was not usable.
    • addInputStream

      public MetadataSources addInputStream(InputStreamAccess xmlInputStreamAccess)
      Read metadata from anInputStream access
      Parameters:
      xmlInputStreamAccess - Access to an input stream containing a DOM.
      Returns:
      this (for method chaining purposes)
    • addInputStream

      public MetadataSources addInputStream(InputStream xmlInputStream)
      Read metadata from anInputStream.
      Parameters:
      xmlInputStream - The input stream containing a DOM.
      Returns:
      this (for method chaining purposes)
    • addURL

      public MetadataSources addURL(URL url)
      Read mappings from aURL
      Parameters:
      url - The url for the mapping document to be read.
      Returns:
      this (for method chaining purposes)
    • addJar

      public MetadataSources addJar(File jar)
      Read all.hbm.xml mappings from a jar file.

      Assumes that any file named*.hbm.xml is a mapping document. This method does not supportorm.xml files!

      Parameters:
      jar - a jar file
      Returns:
      this (for method chaining purposes)
    • addDirectory

      public MetadataSources addDirectory(File dir)
      Read all.hbm.xml mapping documents from a directory tree.

      Assumes that any file named*.hbm.xml is a mapping document. This method does not supportorm.xml files!

      Parameters:
      dir - The directory
      Returns:
      this (for method chaining purposes)
      Throws:
      MappingException - Indicates problems reading the jar file or processing the contained mapping documents.