21
Java EE 7 JPA 2.1 Entity Graph

Александр Захаров "Использование EntityGraph в JPA 2.1"

Embed Size (px)

Citation preview

Java EE 7

JPA 2.1

Entity Graph

JPA structure

JPA 2.0 Entity life cycle

JPA 2.0

• Когда объект извлекается из хранилища с помощью JPA, как правило, не все поля извлекаются сразу. Это происходит потому, что в целях эффективности только конкретные типы полей извлекаются при начальном доступе объекта, а затем любые другие объекты, которые получены при обращении могут быть доступны

Entity loading…

- Lazy loading @OneToMany(fetch = FetchType.LAZY)

- Eager Loading@OneToMany(fetch = FetchType.EAGER)

But when you detach entity lazy loading don’t work…

Определение графа

• Граф это множество точек или вершин и множество линий или ребер, соединяющих между собой все или часть этих точек. Вершины, прилегающие к одному и тому же ребру, называются смежными.Если ребра ориентированны, что обычно показывают стрелками, то они называются дугами, и граф с такими ребрами называется ориентированным графом.Если ребра не имеют ориентации, граф называется неориентированным.

Граф

РеброВершина

Entity Graph JPA 2.1

• Entity Graphs – способ определить структуру графа обьектов используя метаданные модели. Этот граф содержит представление аттрибутов и в случае представления в виде дерева(узлов) дополнительные графы зависимых сущностей. Графы могут быть определены через нотации

Определение через нотации

Order

Order Item

Product

Entity Graph

Subgraph

Example

Entity Graphs with Inheritance

Entity Graph API

Entity Graph with Subgraphs

Dynamic Entity Graph with Root Inheritance

Dynamic load entity graph

Dynamic fetch entity graph

New Entity Graphs From Named Ones

End