Opa pessoal, beleza. Gostaria de uma ajuda se possivel.
Tenho as seguintes entidades:
PurchaseModel:
@Entity(name = "purchase")
data class PurchaseModel(
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
var id: Int? = null,
@Column
var name: String? = null,
@Column
var value: BigDecimal,
@ManyToOne
@JoinColumn(name = "customer_id")
var customer: CustomerModel? = null
)
CustomerModel
@Entity(name = "customer")
data class CustomerModel(
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
var id: Int? = null,
@Column
var email: String,
@Column
var password: String,
@Column
@Enumerated(EnumType.STRING)
var status: CustomerStatus,
@Column(name = "created_at")
var createdAt: LocalDateTime = LocalDateTime.now(),
)
Gostaria de fazer uma consulta de Purchase da sequinte forma; Trazendo os dados dela e o id do usuario, porem a classe purchase tem um status.
Com a ajuda do spring JPA, ele já me da um metodo findByStatus, funciona bem, mas vejo que ele faz tres consultas no banco.
Então estou montando uma consulta jpql, mas ainda não funciona;
@Query("from purchase p join fetch customer where p.status = :status")
fun findByMyStatus(status: PurchaseStatus, pageable: Pageable): Page<PurchaseModel>
Me dá o sequinte erro:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'where purchasemo0_.status='FECHADA' limit 48' at line 1
Acho que estou fazendo da forma errada, se alguem puder me dá uma luz.