Создание класса-сущности

БД позволяет хранить информацию в таблицах, для того чтобы это осуществить, у hibernate существует специальный механизм — mapping. Mapping-проецирование (сопоставление) Java классов с таблицами базы данных. Реализация маппинга возможна через использование конфигурационных файлов XML, либо через аннотации. Так как описание маппинга через файлы XML неудобно и уже устаревает, в примере использованы аннотации. Пример:

  • 1. importjavax.persistence.*;
  • 2. ©Entity
  • 3. @Table (name = "people")
  • 4. public class People {
  • 5. @Id
  • 6. @GeneratedValue (strategy = GenerationType.IDENTITY)
  • 7. @Column (name = "id", unique = true, nullable = false)
  • 8. private Integer id;
  • 9. @Column (name = "firstName")
  • 10. private String firstName;
  • 11. @Column (name = "lastName")
  • 12. private String lastName;
  • 13. @Column (name = "middleName")
  • 14. private String middleName;
  • 15. @Column ()
  • 16. private int year;
  • 17.
  • 18. public Integer getld () {
  • 19. return id;
  • 20. }
  • 21. public void setld (Integer id) {
  • 22. this.id = id;
  • 23. }
  • 24. ...
  • 25. }

Для того чтобы созданный класс воспринимался hibernate как некоторая сущность бизнес-модели, необходимо пометить аннотацией @Entity.

Аннотация @ТаЫе позволяет задать имя, под которым данная сущность будет существовать в БД (позволяет задать имя таблицы), а также другие конфигурационные параметры. Если имя таблицы совпадает с именем класса, аннотацию можно не использовать.

В каждой сущности должен быть указан первичный ключ, который помечается @Id. Аннотация @GeneratedValue указывает, что данное поле будет генерироваться автоматически при создании нового элемента в таблице.

@ Column — один из основных аннотаций, который указывает, что поле, описанное после него, будет храниться в БД.

Поле, над которым стоит аннотация Id, GeneratedValue, Column, должно быть либо примитивом, либо оберткой над этим примитивом: String; java.util.Date; java.sql.Date; java.math.BigDecimal; java. math.Biglnteger.

По правилам хорошего тона класс нужно оформлять как просто POJO-объект, то есть поля должны иметь спецификатор доступа private. А доступ к этим полям осуществляется с помощью геттеров и сеттеров, как показано в примере, строчкиа 18-23.

В БД данная сущность будет выглядеть следующим образом (рис. 2.1).

Структура класса-сущности People в БД

Рис. 2.1. Структура класса-сущности People в БД

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ   ОРИГИНАЛ     След >