Spring Data poskytuje rozhraní CrudRepository<T, ID>
, takže pokud chceme získávat data z databázové tabulky, stačí nám vytvořit vlastní rozhraní, který bude rozšiřovat CrudRepository a určit typ entity, kterou tabulka obsahuje. Jednoduchý příklad to objasní. Pokud budeme mít entitu Order
import java.math.BigDecimal import java.util.* import javax.persistence.* @Entity @Table(name = "t_order") @SequenceGenerator(name = "t_order_seq_gen", sequenceName = "t_order_seq", allocationSize = 1) class Order( @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "t_order_seq_gen") var id: Long = 0L, var identifier: UUID = UUID.randomUUID(), var sum: BigDecimal = BigDecimal.ZERO )
vytvoří se nám (volba spring.jpa.generate-ddl: true
v application.properties
) tabulka t_order
. Pro operace s daty této tabulky vytvoříme rozhraní OrderRepository, které bude rozšiřovat CrudRepository.
import cz.vitfo.springdata.entity.Order import org.springframework.data.repository.CrudRepository interface OrderRepository : CrudRepository<Order, Long>
Toto stačí, abychom měli k dispozici sadu základních metod (count, delete, deleteAll, deleteById, existsById, findAll, findAllById, findById, save, saveAll) a další metody mohli jednoduše vytvářet použitím jmenné konvence – findByUuid, findByUuidAndSum, …