Приветствую Вас ГостьВторник, 14.05.2024, 05:35

Программирование на Java, Android, Delphi


Блог

Главная » 2014 » Август » 6 » JPA запись отношений между сущностями
16:52
JPA запись отношений между сущностями

JPA запись отношений между сущностями

Для запроса сущностей из БД используем EntityManager. Его можно получить 2 способами:

1)

@PersistentContext(unitName = "xxx")

private EntityManager em;

2)

@PersistentUnit

private EntityManagerFactory emf;

@Resource

private UserTransaction userTransaction;

Отношения между сущностями записывается через аннотации. Обычно в базе данных отношения являются однонаправленными. Они делаются через внешние ключи. В JPA мы сможем даже однонаправленное отношение представить как двунапрвленное. Для этого в обоих сущностях указываем аннотации.

Один к одному

На одной стороне:

@OneToOne

@JoinColumn (name="имя поля с внешним ключом")

private Customer customer;

На другой стороне:

@OneToOne(mappedBy="customer")

private LoginInfo loginInfo;

Отношение один ко многим

@ManyToOne
@JoinColumn(name="поле с внешним ключом")
private Customer customer

На другой стороне

@OneToMany(mappedBy="customer")
private Set orders

Отношение многие ко многим

Отношение многие ко многим строится из 3 таблиц. Например OREDER, ORDERS_ITEMS, ITEMS, где ORDERS_ITEMS является связующей и содержит два поля каждое из которых является внешним ключом на две другие таблицы. Эти два поля обычно составляют составной первичный ключ связующей таблицы.

@ManyToMany
JoinTable(name="ORDER_ITEMS", JoinColumns = @JoinColumns(name = "ORDER_ID", referenceColumnName = "ORDER_ID"), inverseJoinColumns = @JoinColumn(name = "ITEM_ID", referenceColumnName = "ITEMS_ID"))
private Collection items

В сущности Items описание сокращенное, так как есть в Order

@ManyToMany
private Collection orders
Категория: Java EE | Просмотров: 802 | Добавил: alex | Рейтинг: 5.0/1
Категории раздела
Java (Общие вопросы) [17]
Java (Библиотека, пакеты Java) [17]
Java (Разработка программного обеспечения на Java) [5]
Java (Среда разработки NetBeans) [5]
JSF + PrimeFaces [21]
Java EE [11]
Разное [3]
Статистика

Онлайн всего: 2
Гостей: 2
Пользователей: 0
Форма входа
Поиск
Календарь
«  Август 2014  »
ПнВтСрЧтПтСбВс
    123
45678910
11121314151617
18192021222324
25262728293031
Архив записей