Last updated
Last updated
Entity клас в JPA е POJO, представляващ данни, които могат да бъдат запазени в базата данни. Един entity представлява таблица, съхранявана в база данни. Всеки ред в таблицата съответства на обект от този клас.
Анотацията се добавя на ниво клас, като задава последният като entity. Entity класът трябва да разполага с дефолтен конструктор и поле, зададено като първичен ключ.
Задава първичната таблица на анотирания entity.
В повечето случаи не желаем името на таблицата в базата от данни да съвпада с името на entity класа. При подобна ситуация, можем изрично да го посочим посредством анотацията @Table.
С помощта на опционалните елементи на анотацията indexes, uniqueConstraints, schema и catalog могат да се посочат индексите, ограниченията за уникалност, схемата и каталог на таблицата.
Всеки JPA обект трябва да има първичен ключ, който го идентифицира уникално. Анотацията @Id дефинира първичния ключ. Можем да генерираме идентификаторите по различни начини, които са посочени от анотацията @GeneratedValue. Можем да избираме от четири стратегии за генериране на идентификатор с елемента strategy. Стойността може да бъде AUTO, TABLE, SEQUENCE или IDENTITY.
Уточнява детайлите на колона в таблицата. Може да бъдат зададени елементи като name, length, nullable и unique.
Понякога може да искаме да направим дадено поле преходно. Можем да постигнем това с анотацията @Transient. Тя указва, че полето няма да бъде запазено. Например можем да изчислим възрастта на ученик от датата на раждане. Така че нека да коментираме възрастта на полето с анотацията @Transient:
Hibernate анотация. Маркира полето като печат за времето на създаване на обекта.
Hibernate анотация. Маркира полето като печат за времето на актуализиране на обекта.
Указва асоциация едно към много (1:M).
Анотацията @OneToMany може да се използва в рамките на клас за вграждане, съдържащ се в entity клас, за да се укаже връзка с колекция от обекти. Ако връзката е двупосочна, елементът mappedBy трябва да се използва за указване на полето на връзката или свойството на entity, който е собственик на връзката.
Пример:
Клас Customer
Клас Order
Указва асоциация много към много (M:M).
Пример 1
Пример 2