Spring Boot: JPA и Spring Data JPA

Java Persistence API - это стандартная технология, которая позволяет "сопоставлять" (“map”) объекты с реляционными базами данных. POM spring-boot-starter-data-jpa обеспечивает быстрый способ начать работу. Он предоставляет следующие ключевые зависимости:

  • Hibernate: одна из самых популярных реализаций JPA.
  • Spring Data JPA: упрощает внедрение репозиториев на основе JPA.
  • Spring ORM: Основная поддержка ORM от Spring Framework.

Классы сущностей (Entity Classes)

Традиционно классы JPA “Entity” указываются в файле persistence.xml. В Spring Boot этот файл не требуется, и вместо него используется “Entity Scanning”. По умолчанию все пакеты ниже вашего основного класса конфигурации (тот, который аннотирован @EnableAutoConfiguration или @SpringBootApplication) проверяются.

Любые классы, аннотированные @Entity, @Embeddable или @MappedSuperclass, учитываются. Типичный класс сущности напоминает следующий пример:

package com.example.myapp.domain;

import java.io.Serializable;
import javax.persistence.*;

@Entity
public class City implements Serializable {

    @Id
    @GeneratedValue
    private Long id;

    @Column(nullable = false)
    private String name;

    @Column(nullable = false)
    private String state;

    // ... дополнительные члены, часто включают сопоставления @OneToMany

    protected City() {
        // конструктор без аргументов, требуемый спецификацией JPA
        // protected, так как не должен использоваться напрямую
    }

    public City(String name, String state) {
        this.name = name;
        this.state = state;
    }

    public String getName() {
        return this.name;
    }

    public String getState() {
        return this.state;
    }

    // ... и т.д

}

Вы можете настроить места сканирования объектов, используя аннотацию @EntityScan.


Читайте также:


Комментарии

Популярные сообщения из этого блога

Методы класса Object в Java

Как получить текущий timestamp в Java

Основные опции JVM для повышения производительности и отладки