Рубрики
Без рубрики

JPA с пружинным ботинком

Чтобы использовать JPA с Spring, нам нужно выполнить 4 шага: Определить метаданные сопоставления в entities Define an… С тегами spring, jpa, java.

Чтобы использовать JPA с Spring, нам нужно выполнить 4 шага:

  1. Определение метаданных сопоставления в сущностях
  2. Определите компонент EntityManagerFactory
  3. Определите компоненты диспетчера транзакций и источника данных
  4. Определение репозитория/DAO

С помощью Spring Boot он автоматически создает источник данных, компонент EntityManagerFactory и настраивает JpaTransactionManager. Итак, чтобы использовать JPA с Spring Boot, нам просто нужно выполнить 2 шага:

@Entity
@Table(name="T_ACCOUNT")
public class Account {

    @Id
    @Column(name="ID")
    private Long entityId;

    @Column(name="CREDIT_CARD")
    private String creditCardNumber;
    ...
}
public interface AccountRepository extends Repository {

    public Account findByCreditCardNumber(String creditCardNumber);
}

Spring Data будет реализовывать во время выполнения сканирование интерфейсов, расширяющих репозиторий. Кроме того, он будет реализовывать методы CRUD (расширение CrudRepository), подкачки и сортировки (расширение PagingAndSortingRepository), среди других подинтерфейсов. См. Документацию |/Репозитория

public interface AccountRepository extends CrudRepository {

    public Account findByCreditCardNumber(String creditCardNumber);

    @Query("SELECT a FROM Account WHERE a.email NOT LIKE '%@%'")
    public List findInvalidEmails();

}
public class AccountServiceImpl implements AccountService {

    private AccountRepository accountRepository;

    public AccountServiceImpl(AccountRepository accountRepository) {
        this.accountRepository = accountRepository;
    }

    @Transactional
    public Account getAccount(String creditCardNumber) {
        return accountRepository.findByCreditCardNumber(creditCardNumber);
    }

    @Transactional
    public void saveAccount(Account account) {
        accountRepository.save(account);
    }
}

Оригинал: “https://dev.to/eidher/jpa-with-spring-boot-p65”