Ich habe den folgenden Code -Teil implementiert: < /p>
public void computeAllBilling() {
orderRepository.getAll().parallel().forEach(ordreEntity -> {
Billing billing = computedBilling(orderEntity);
billingRepository.save(billing);
entityManager.detach(ordreEntity);
});
}
public interface BillingRepository extends JpaRepository {
@QueryHints(value = {
@QueryHint(name = org.hibernate.jpa.QueryHints.HINT_FETCH_SIZE, value = "1"),
@QueryHint(name = org.hibernate.jpa.QueryHints.HINT_CACHEABLE, value = "false"),
@QueryHint(name = org.hibernate.jpa.QueryHints.HINT_READONLY, value = "true")
})
@Query(value = "SELECT o.* FROM raw.ordre o", nativeQuery = true)
Stream getAll();
}
< /code>
Ich muss meine Lektüre sehr schnell aus einer Tabelle streamen, aber in unserer Geschäftsverarbeitung müssen wir die Abrechnung am Ende sparen (nach dem Leser eine Bestellung muss gespeichert werden) < /p>
Befolgen Sie jedoch diesen geeky Hacker-Artikel: Hochleistungsdaten, die mit Springdaten-JPA-Stream mit Hochleistungsdaten abrufen Repository. < /p>
Weiß jemand, wie ich den folgenden Fehler vermeiden kann? Ich versuche, eine Streaming -Abfragemethode ohne eine umgebende Transaktion auszuführen, die die Verbindung offen hält, damit der Stream tatsächlich verbraucht werden kann. Stellen Sie sicher, dass der Code, der den Stream verbraucht>
@Transaction Readonly auf Spring Repo und speichern Sie ein anderes Repo mit einem Stream (InvalyDataAccessapiusageExcep ⇐ Java
-
- Similar Topics
- Replies
- Views
- Last post