У меня есть следующий метод, который бросает org.springframework.dao.invaliddataaccessapiusageexception: отдельная сущность, передаваемая в течение постоянного: com.domain.passenger на eforciclerepository.saveall call. Я не понимаю, почему это происходит, так как пассажир сохраняется всего за несколько строк, и, следовательно, разве это не должно быть прикрепленным сущностью? Я особенно сбит с толку, потому что свойство Сохранить и передавать это в пассажир работает очень хорошо. :
@OneToOne(cascade = CascadeType.PERSIST)
@JoinColumn(name = "passenger_id", updatable = false)
@JsonManagedReference(value = "vehicle-passenger")
private Passenger passenger;
< /code>
А вот метод настроек модульного теста: < /p>
@DataJpaTest
@Transactional(propagation = NOT_SUPPORTED)
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
class Tests {
@BeforeAll
void setup() {
Vehicle veh1 = build.fromFile(Vehicle.class, "json/Vehicle");
Vehicle veh2 = build.fromFile(Vehicle.class, "json/Vehicle");
Vehicle veh3 = build.fromFile(Vehicle.class, "json/Vehicle");
Vehicle veh4 = build.fromFile(Vehicle.class, "json/Vehicle");
// persist a property to use
Property property = build.fromFile(Property.class, "json/Property");
property.setPropertyId(1L);
propertyRepository.save(property);
Passenger passenger1 = build.fromFile(Passenger.class, "json/Passenger");
Passenger passenger2 = build.fromFile(Passenger.class, "json/Passenger");
// add test properties to passengers
passenger1.setProperty(property);
passenger2.setProperty(property);
passenger1 = passengerRepository.save(passenger1);
passenger2 = passengerRepository.save(passenger2);
// add test passengers to vehicles
veh1.setPassenger(passenger1);
veh2.setPassenger(passenger2);
vehicleRepository.saveAll(List.of(
veh1,
veh2,
veh3,
veh4
));
}
.....
< /code>
@Data
@Entity
@DiscriminatorValue("VEHICLE")
@FieldNameConstants
@SuperBuilder
@RequiredArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class Vehicle extends Conveyance {
.. removed unrelated properties for brevity ...
}
< /code>
@Data
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "CONVEYANCE_TYPE", discriminatorType = DiscriminatorType.STRING)
@FieldNameConstants
@SuperBuilder
@RequiredArgsConstructor
@AllArgsConstructor
public abstract class Conveyance {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "conveyance_id_seq")
@SequenceGenerator(name = "conveyance_id_seq", allocationSize = 1)
@Setter(AccessLevel.NONE)
private Long id;
@OneToOne(cascade = CascadeType.PERSIST)
@JoinColumn(name = "passenger_id", updatable = false)
@JsonManagedReference(value = "conveyance-passenger")
private Passenger passenger;
}
< /code>
@Data
@Entity
@FieldNameConstants
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Passenger {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "passenger_id_seq")
@SequenceGenerator(name = "passenger_id_seq", allocationSize = 1)
@Setter(AccessLevel.NONE)
private Long id;
@Column(
unique = true,
updatable = false,
columnDefinition = "bigint GENERATED ALWAYS AS IDENTITY (START WITH 10)"
)
@Generated(event = EventType.INSERT)
private Long passengerId;
@ManyToOne
@JoinColumn(name = "property_id")
@JsonBackReference
private Property property;
@OneToOne(cascade = CascadeType.PERSIST, mappedBy = Conveyance.Fields.passenger)
@EqualsAndHashCode.Exclude
@JsonBackReference(value = "conveyance-passenger")
private Conveyance conveyance;
}
< /code>
@Data
@Entity
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldNameConstants
public class Property {
public Property(Long id) {
this.id = id;
}
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "property_id_seq")
@SequenceGenerator(name = "property_id_seq", allocationSize = 1)
@Setter(AccessLevel.NONE)
private Long id;
@Column(unique = true)
private Long propertyId;
}
Подробнее здесь: https://stackoverflow.com/questions/794 ... ter-saving
«Отличное сущность принята на стойкость» сразу после спасения ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1738681097
Anonymous
У меня есть следующий метод, который бросает org.springframework.dao.invaliddataaccessapiusageexception: отдельная сущность, передаваемая в течение постоянного: com.domain.passenger на eforciclerepository.saveall call. Я не понимаю, почему это происходит, так как пассажир сохраняется всего за несколько строк, и, следовательно, разве это не должно быть прикрепленным сущностью? Я особенно сбит с толку, потому что свойство Сохранить и передавать это в пассажир работает очень хорошо. :
@OneToOne(cascade = CascadeType.PERSIST)
@JoinColumn(name = "passenger_id", updatable = false)
@JsonManagedReference(value = "vehicle-passenger")
private Passenger passenger;
< /code>
А вот метод настроек модульного теста: < /p>
@DataJpaTest
@Transactional(propagation = NOT_SUPPORTED)
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
class Tests {
@BeforeAll
void setup() {
Vehicle veh1 = build.fromFile(Vehicle.class, "json/Vehicle");
Vehicle veh2 = build.fromFile(Vehicle.class, "json/Vehicle");
Vehicle veh3 = build.fromFile(Vehicle.class, "json/Vehicle");
Vehicle veh4 = build.fromFile(Vehicle.class, "json/Vehicle");
// persist a property to use
Property property = build.fromFile(Property.class, "json/Property");
property.setPropertyId(1L);
propertyRepository.save(property);
Passenger passenger1 = build.fromFile(Passenger.class, "json/Passenger");
Passenger passenger2 = build.fromFile(Passenger.class, "json/Passenger");
// add test properties to passengers
passenger1.setProperty(property);
passenger2.setProperty(property);
passenger1 = passengerRepository.save(passenger1);
passenger2 = passengerRepository.save(passenger2);
// add test passengers to vehicles
veh1.setPassenger(passenger1);
veh2.setPassenger(passenger2);
vehicleRepository.saveAll(List.of(
veh1,
veh2,
veh3,
veh4
));
}
.....
< /code>
@Data
@Entity
@DiscriminatorValue("VEHICLE")
@FieldNameConstants
@SuperBuilder
@RequiredArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
public class Vehicle extends Conveyance {
.. removed unrelated properties for brevity ...
}
< /code>
@Data
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "CONVEYANCE_TYPE", discriminatorType = DiscriminatorType.STRING)
@FieldNameConstants
@SuperBuilder
@RequiredArgsConstructor
@AllArgsConstructor
public abstract class Conveyance {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "conveyance_id_seq")
@SequenceGenerator(name = "conveyance_id_seq", allocationSize = 1)
@Setter(AccessLevel.NONE)
private Long id;
@OneToOne(cascade = CascadeType.PERSIST)
@JoinColumn(name = "passenger_id", updatable = false)
@JsonManagedReference(value = "conveyance-passenger")
private Passenger passenger;
}
< /code>
@Data
@Entity
@FieldNameConstants
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Passenger {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "passenger_id_seq")
@SequenceGenerator(name = "passenger_id_seq", allocationSize = 1)
@Setter(AccessLevel.NONE)
private Long id;
@Column(
unique = true,
updatable = false,
columnDefinition = "bigint GENERATED ALWAYS AS IDENTITY (START WITH 10)"
)
@Generated(event = EventType.INSERT)
private Long passengerId;
@ManyToOne
@JoinColumn(name = "property_id")
@JsonBackReference
private Property property;
@OneToOne(cascade = CascadeType.PERSIST, mappedBy = Conveyance.Fields.passenger)
@EqualsAndHashCode.Exclude
@JsonBackReference(value = "conveyance-passenger")
private Conveyance conveyance;
}
< /code>
@Data
@Entity
@Builder
@NoArgsConstructor
@AllArgsConstructor
@FieldNameConstants
public class Property {
public Property(Long id) {
this.id = id;
}
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "property_id_seq")
@SequenceGenerator(name = "property_id_seq", allocationSize = 1)
@Setter(AccessLevel.NONE)
private Long id;
@Column(unique = true)
private Long propertyId;
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79411897/detached-entity-passed-to-persist-immediately-after-saving[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия