Printemps de requête de données où la colonne est null
Supposons que j'ai entités (getters/setters et divers détails omis par souci de concision):
@Entity
class Customer{
...
@OneToMany(cascade = CascadeType.ALL, mappedBy = "customer")
Collection<Coupon> coupons;
}
@Entity
class Coupon{
...
@Temporal(value = TemporalType.TIMESTAMP)
private Date usedOn;
@ManyToOne(fetch = FetchType.LAZY)
@NotNull
Customer customer;
}
Je souhaite récupérer tous les Coupons pour un Client ayant la valeur null usedOn.
Je, ve, sans succès, définit une méthode dans le CouponRepository comme décrit dans docs
@Repository
public interface CouponRepository extends CrudRepository<Coupon, Long> {
Collection<Coupon> findByCustomerAndUsedOnIsNull(Customer);
}
mais cela conduit à une erreur du compilateur Syntax error, insert "... VariableDeclaratorId" to complete FormalParameterList
.
OriginalL'auteur lrkwz | 2015-04-04
Vous devez vous connecter pour publier un commentaire.
De ma faute, la définition correcte est
J'ai tout simplement manqué le nom du paramètre 🙁
OriginalL'auteur lrkwz
Essayez de changer votre méthode pour cela (en supposant que
Customer.id
est longue):Collection<Coupon> findByCustomer_IdAndUsedOnIsNull(Long customerId);
ensuite utiliser comme ceci:
repo.findByCustomer_IdAndUsedOnIsNull(customer.getId());
OriginalL'auteur Xorty
Vous pouvez utiliser IsNull pour vérifier la valeur null dans les colonnes JPA requête.
Par exemple pour tout columnA vous pouvez écrire la requête comme une requête comme
Dans ce cas, vous pouvez écrire des requêtes comme
Aussi, vous pouvez vérifier comment cette requête sera
Reportez-vous à ce Printemps de Données JPA création de Requêtes cela vous aidera beaucoup à comprendre et à créer différents type de JPA requête variation.
https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods.query-creation
J'ai mis à jour la réponse avec description complète pensez-vous, maintenant, de ses compréhensible par tout le monde qui font face à ce problème.
OriginalL'auteur Nikunj Undhad