Ich möchte eine Abfrage, die 2 Spalten innerhalb meiner Tabelle vergleichen und daher keine Argumente zu der Abfrage hinzufügen müssen. Zum Beispiel: Ich habe eine Tabelle Artikel, und ich möchte alle Produkte finden, die einen Bestand hat < = stock_minSpring Data JPA - Abfrage ohne Argumente
+----+-----------+-------+-----------+
| ID | NAME | STOCK | STOCK_MIN |
+----+-----------+-------+-----------+
| 1 | product 1 | 2 | 3 |
| 2 | product 2 | 3 | 1 |
| 3 | product 3 | 4 | 5 |
+----+-----------+-------+-----------+
Wie kann ich das mit Spring Data JPA?
wie dies in meinem ProductRepository Deklarieren etwas wirft einen Fehler
List<Product> findByStockIsLessThanEqualStockMin();
dies auch nicht
@Query("select p from product p where p.stock <= p.stockmin")
List<Product> findByStockIsLessThanEqualStockMin();
die Beispiele Alle in der Spring Data JPA documentation einige Argumente in der Abfrage verwenden funktioniert, aber ich don Ich möchte das nicht tun, weil das Attribut stockMin für jede Zeile in meiner Produkttabelle unterschiedlich ist.
[FIXED]
Das Problem war super dumm. Ich vergesse, meine Entität zu kapitalisieren und die select
war nicht notwendig. Unter Frage funktioniert gut:
@Query("from Product p where p.stock <= p.stockMin")
List<Product> findByStockIsLessThanEqualStockMin();
pd: das war meine erste Frage hier. Danke euch allen! :)
Nicht sicher, ob ich Ihnen helfen kann, also haben Sie versucht, FindAllBy ...? –
können Sie versuchen, so: findByStockLessThanEqual (stockmin); Ref: http://docs.spring.io/spring-data/jpa/docs/current/reference/html/#jpa.query-methods.query-creation – Shaheer
Verwenden Sie eine native Abfrage http://docs.spring.io /spring-data/jpa/docs/current/reference/html/#jpa.query-methods.named-queries –