wake-up-neo.com

Quelldatenabfrage, bei der die Spalte null ist

Angenommen, ich habe Entitäten (Getter/Setter und verschiedene Details der Kürze halber weggelassen):

@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;
}

Ich möchte alle Gutscheine für einen bestimmten Kunden mit null usedOn abrufen. Ich habe eine Methode im CouponRepository nicht erfolgreich definiert, wie in docs beschrieben

@Repository
public interface CouponRepository extends CrudRepository<Coupon, Long> {
     Collection<Coupon> findByCustomerAndUsedOnIsNull(Customer);
}

aber dies führt zu einem Compilerfehler Syntax error, insert "... VariableDeclaratorId" to complete FormalParameterList.

21
lrkwz

Mein Fehler ist die korrekte Definition

@Repository
public interface CouponRepository extends CrudRepository<Coupon, Long> {
     Collection<Coupon> findByCustomerAndUsedOnIsNull(Customer customer);
}

Ich habe einfach den Parameternamen verpasst :-(

15
lrkwz

Versuchen Sie, Ihre Methode auf diese umzustellen (vorausgesetzt, Customer.id Ist eine lange):

Collection<Coupon> findByCustomer_IdAndUsedOnIsNull(Long customerId);

dann benutze wie folgt:

repo.findByCustomer_IdAndUsedOnIsNull(customer.getId());

13
Xorty

Sie können IsNull verwenden, um Nullspalten in JPA-Abfragen zu überprüfen.

Zum Beispiel für jede columnA können Sie Abfrage wie Abfrage wie schreiben

findByColumnAIsNull

In diesem Fall können Sie Anfragen wie schreiben

@Repository
public interface CouponRepository extends CrudRepository<Coupon, Long> {
 Collection<Coupon> findByCustomerAndUsedOnIsNull(Customer customer);
 List<Coupon> findByUsedOnIsNull();
}

Sie können auch überprüfen, wie diese Abfragen sein werden enter image description here Diese JPA-Abfrage für die Frühjahrsdaten erstellen. Dies wird Ihnen dabei helfen, verschiedene Arten von JPA-Abfragevariationen zu verstehen und zu erstellen.

https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods.query-creation

7
Nikunj Undhad