hibernate-orm/design/type-system-domain.adoc

54 lines
1.6 KiB
Plaintext
Raw Normal View History

= Domain type system (JPA/SQM)
The JPA type system is an "unmapped" model, meaning that it has no mapping information -
no references to tables, columns, etc. The base contract for Hibernate's extension to the
JPA model is `org.hibernate.metamodel.model.domain.DomainType`.
Hibernate's Semantic Query Model (SQM) is defined in terms of these JPA type extensions,
2022-01-23 10:32:43 -05:00
through the `SqmExpressible` contract, allowing parts of the application's
domain model to be used as part of an SQM tree.
[plantuml,SqmTypeSystem,png]
2020-08-25 21:17:35 -04:00
.Domain type system
....
@startuml
skinparam handwritten true
interface DomainType
interface SimpleDomainType
interface BasicDomainType
interface AnyMappingDomainType
interface ManagedDomainType
interface EmbeddableDomainType
interface IdentifiableDomainType
interface EntityDomainType
interface MappedSuperclassDomainType
2022-01-23 10:32:43 -05:00
interface SqmExpressible
interface SqmPathSource
interface PersistentAttribute
interface SingularPersistentAttribute
interface PluralPersistentAttribute
DomainType <|-- SimpleDomainType
SimpleDomainType <|-- BasicDomainType
SimpleDomainType <|-- AnyMappingDomainType
SimpleDomainType <|-- ManagedDomainType
ManagedDomainType <|-- EmbeddableDomainType
ManagedDomainType <|-- IdentifiableDomainType
IdentifiableDomainType <|-- MappedSuperclassDomainType
IdentifiableDomainType <|-- EntityDomainType
2022-01-23 10:32:43 -05:00
SqmExpressible <|-- DomainType
SqmExpressible <|-- SqmPathSource
SqmPathSource <|-- EntityDomainType
SqmPathSource <|-- PersistentAttribute
PersistentAttribute <|-- SingularPersistentAttribute
PersistentAttribute <|-- PluralPersistentAttribute
@enduml
....