54 lines
1.6 KiB
Plaintext
54 lines
1.6 KiB
Plaintext
|
= 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,
|
||
|
through the `org.hibernate.query.sqm.SqmExpressable` contract allowing parts of the application's
|
||
|
domain model to be used as part of an SQM tree.
|
||
|
|
||
|
|
||
|
[plantuml,SqmTypeSystem,png]
|
||
|
.Domain (JPA/SQM) type system
|
||
|
....
|
||
|
@startuml
|
||
|
skinparam handwritten true
|
||
|
|
||
|
interface DomainType
|
||
|
interface SimpleDomainType
|
||
|
interface BasicDomainType
|
||
|
interface AnyMappingDomainType
|
||
|
interface ManagedDomainType
|
||
|
interface EmbeddableDomainType
|
||
|
interface IdentifiableDomainType
|
||
|
interface EntityDomainType
|
||
|
interface MappedSuperclassDomainType
|
||
|
|
||
|
interface SqmExpressable
|
||
|
interface SqmPathSource
|
||
|
interface PersistentAttribute
|
||
|
interface SingularPersistentAttribute
|
||
|
interface PluralPersistentAttribute
|
||
|
|
||
|
DomainType <|-- SimpleDomainType
|
||
|
SimpleDomainType <|-- BasicDomainType
|
||
|
SimpleDomainType <|-- AnyMappingDomainType
|
||
|
SimpleDomainType <|-- ManagedDomainType
|
||
|
ManagedDomainType <|-- EmbeddableDomainType
|
||
|
ManagedDomainType <|-- IdentifiableDomainType
|
||
|
IdentifiableDomainType <|-- MappedSuperclassDomainType
|
||
|
IdentifiableDomainType <|-- EntityDomainType
|
||
|
|
||
|
SqmExpressable <|-- DomainType
|
||
|
SqmExpressable <|-- SqmPathSource
|
||
|
|
||
|
SqmPathSource <|-- EntityDomainType
|
||
|
SqmPathSource <|-- PersistentAttribute
|
||
|
|
||
|
PersistentAttribute <|-- SingularPersistentAttribute
|
||
|
PersistentAttribute <|-- PluralPersistentAttribute
|
||
|
|
||
|
@enduml
|
||
|
....
|