Чтобы использовать JPA с Spring, нам нужно выполнить 4 шага:
- Определение метаданных сопоставления в сущностях
- Определите компонент EntityManagerFactory
- Определите компоненты диспетчера транзакций и источника данных
- Определение репозитория/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”