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 |