47 lines
990 B
Plaintext
47 lines
990 B
Plaintext
|
= Type System
|
||
|
|
||
|
The Hibernate "type system" is multi-layered....
|
||
|
|
||
|
|
||
|
== JavaTypeDescriptor
|
||
|
|
||
|
At the lowest level we have `JavaTypeDescriptor` which describes very rudimentary information about
|
||
|
Java types (`Class`). This level makes no distinctions based about the nature of the type. E.g.
|
||
|
it does not understand that `Person` is an entity.
|
||
|
|
||
|
|
||
|
== JPA type system (SQM)
|
||
|
|
||
|
[plantuml,SqmTypeSystem,png]
|
||
|
.SqmTypeSystem
|
||
|
....
|
||
|
@startuml
|
||
|
skinparam handwritten true
|
||
|
|
||
|
interface SqmExpressable
|
||
|
interface SqmPathSource
|
||
|
interface EntityDomainType
|
||
|
interface BasicDomainType
|
||
|
interface PeristentAttribute
|
||
|
interface SingularePersistentAttribute
|
||
|
interface PluralPersistentAttribute
|
||
|
|
||
|
|
||
|
SqmExpressable <|-- SqmPathSource
|
||
|
SqmExpressable <|-- BasicDomainType
|
||
|
|
||
|
SqmPathSource <|-- EntityDomainType
|
||
|
SqmPathSource <|-- PeristentAttribute
|
||
|
|
||
|
PeristentAttribute <|-- SingularePersistentAttribute
|
||
|
PeristentAttribute <|-- PluralPersistentAttribute
|
||
|
|
||
|
@enduml
|
||
|
....
|
||
|
|
||
|
|
||
|
== Mapping model
|
||
|
|
||
|
- persisters, etc...
|
||
|
|
||
|
todo : document this one
|