Quiero escribir una firma de método de interfaz de repositorio de Spring Data JPA que me permita encontrar entidades con una propiedad de un objeto incrustado en esa entidad. ¿Alguien sabe si esto es posible y, de ser así, cómo?
Aquí está mi código:
@Entity
@Table(name = "BOOK_UPDATE_QUEUE", indexes = { uniqueConstraints = @UniqueConstraint(columnNames = {
"bookId", "region" }, name = "UK01_BOOK_UPDATE_QUEUE"))
public class QueuedBook implements Serializable {
@Embedded
@NotNull
private BookId bookId;
...
}
@Embeddable
public class BookId implements Serializable {
@NotNull
@Size(min=1, max=40)
private String bookId;
@NotNull
@Enumerated(EnumType.STRING)
private Region region;
...
}
public interface QueuedBookRepo extends JpaRepository<QueuedBook, Long> {
//I'd like to write a method like this, but can't figure out how to search by region,
//when region is actually a part of the embedded BookId
Page<QueuedBook> findByRegion(Region region, Pageable pageable);
}
¿Puedo escribir una consulta para esto usando Spring Data?
findByBookIdRegion(Region region, Pageable pageable)
?