Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

jpa

.pdf
Скачиваний:
5
Добавлен:
02.06.2015
Размер:
2.07 Mб
Скачать

Требования для доступа к свойствам

Свойства должны иметь методы get и set

Методы свойств должны быть public

или protected

Аннотируется только метод get

JPA-имплементация будет использовать эти методы

Бизнес-логика в аксессорах может привести к побочным эффектам

2-31

Требования для доступа к полям

Поля должны быть public, package или protected

Аннотируются поля

JPA-имплементация обеспечивает доступ к этим полям

Рекомендуется использовать доступ к полям

2-32

Идентификатор (ключ) сущности

Однозначно идентифицирует состояние сущности в БД

Может состоять из одного или

нескольких полей

Ссылки на другие сущности не могут быть ключами

Должен быть определен для старшего класса иерархии

2-33

Аннотации простого ключа

Аннотация @Id

По умолчанию ключ должен определяться приложением

@GeneratedValue

Параметры:

strategy GenerationType

AUTO — по умолчанию

TABLE, SEQUENCE, IDENTITY

generator

2-34

Составные ключи

Использует определенный в приложении класс ключа

public-класс верхнего уровня или public static вложенный класс

Реализует Serializable

public конструктор по умолчанию

Методы hashCode и equals

используют ключевые поля

2-35

Аннотации составных ключей

Аннотирование класса ключа и его полей

Аннотирование поля встроенного ключа

2-36

Хранимые поля

Значения хранимых полей

сохраняются в БД

Два типа хранимых полей:

Простые (поля-значения)‏

Отношения (связи)‏

transient и @Transient поля не могут быть хранимыми

Остальные поля хранимы по умолчанию

2-37

Типы простых полей

Примитивные типы и их обертки

java.lang.String

java.math.BigInteger/BigDecimal

java.util.Date/Calendar

java.sql.Date/Time/Timestamp

Массивы Byte, Byte, char, Char

Перечисления

Любой Serializable класс

2-38

Аннотации простых полей

Аннотация @Basic

Опциональна, но рекомендуется для

определения типа доступа

Два параметра:

fetch

FetchType.EAGER (по умолчанию)‏

FetchType.LAZY

optional

true (по умолчанию для непримитивов)‏

false (по умолчанию для примитивов)‏

2-39

Аннотация @Temporal

Дополняет аннотацию @Basic

Применяется к полям типа java.util.Date/Calendar

Возможные значения:

TemporalType.DATE

TemporalType.TIME

TemporalType.TIMESTAMP

2-40

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]