Строка была обновлена ​​или удалена другой транзакцией (или сопоставление несохраненных значений было неверным): [com.exJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Строка была обновлена ​​или удалена другой транзакцией (или сопоставление несохраненных значений было неверным): [com.ex

Сообщение Anonymous »

Я читаю книгу «Весна и работа». И у меня есть следующая проблема, я не понимаю, как ее решить.
org.springframework.orm.ObjectOptimisticLockingFailureException: строка была обновлена ​​или удалена другой транзакцией (или несохранена). Сопоставление -значений было неправильным): [com.example.mysqlplanefinder.models.Aircraft#34]
Aircraft.java

Код: Выделить всё

package com.example.mysqlplanefinder.models;

import com.fasterxml.jackson.annotation.JsonProperty;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.Id;
import java.time.Instant;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Aircraft {
@Id
@GeneratedValue
private Long id;

private String callsign, squawk, reg, flightno, route, type, category;

private int altitude, heading, speed;
@JsonProperty("vert_rate")
private int vertRate;
@JsonProperty("selected_altitude")
private int selectedAltitude;

private double lat, lon, barometer;
@JsonProperty("polar_distance")
private double polarDistance;
@JsonProperty("polar_bearing")
private double polarBearing;

@JsonProperty("is_adsb")
private boolean isADSB;
@JsonProperty("is_on_ground")
private boolean isOnGround;

@JsonProperty("last_seen_time")
private Instant lastSeenTime;
@JsonProperty("pos_update_time")
private Instant posUpdateTime;
@JsonProperty("bds40_seen_time")
private Instant bds40SeenTime;
}
AircraftRepository.java

Код: Выделить всё

package com.example.mysqlplanefinder.repositories;

import com.example.mysqlplanefinder.models.Aircraft;
import org.springframework.data.repository.CrudRepository;

public interface AircraftRepository extends CrudRepository { }

PlanePoller.java

Код: Выделить всё

package com.example.mysqlplanefinder;

import com.example.mysqlplanefinder.models.Aircraft;
import com.example.mysqlplanefinder.repositories.AircraftRepository;
import lombok.NonNull;
import lombok.RequiredArgsConstructor;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import org.springframework.web.reactive.function.client.WebClient;

@EnableScheduling
@Component
@RequiredArgsConstructor
class PlanePoller {
@NonNull
private final AircraftRepository repository;
private WebClient client =
WebClient.create("http://localhost:7634/aircraft");

@Scheduled(fixedRate = 1000)
private void pollPlanes() {
repository.deleteAll();

client.get()
.retrieve()
.bodyToFlux(Aircraft.class)
.filter(plane -> !plane.getReg().isEmpty())
.toStream()
.forEach(repository::save);

repository.findAll().forEach(System.out::println);
}
}

Я пробовал удалить метод .deleteAll() и добавить версии, как рекомендовал Ай, но ничего не помогло.

Подробнее здесь: https://stackoverflow.com/questions/793 ... apping-was
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»