при тестировании моих объектов я получаю ошибку внешнего ключа без родителя; Таблица FKF7EC361BFEA0E826: DEVICE_DEVICE_PRESETS
я тестирую, создавая сущности в конструкторе класса моего устройства, ошибка возникает, когда я не создаю сохраненную предустановленную сущность и не добавляю ее в предустановленную сущность моего устройства. если я создам сохраненный предустановленный объект и добавлю его в свой объект устройства, код будет работать нормально.
(1) - ошибка возникает, когда сохраненный предустановленный объект связан через явный столбец внешнего ключа, как показано ниже (stored_preset_num)
(2) - ошибка не возникает, когда объекты используют одни и те же первичные ключи значения
может кто-нибудь помочь мне понять, почему, когда он связан только внешним ключом, он обеспечивает присутствие объекта, а не просто устанавливает связь? почему мне нужно создать сохраненный предустановленный объект с (1), но не (2)
DEVICE
@OneToMany(cascade=CascadeType.ALL)
@JoinColumns({
@JoinColumn(name="device_id",referencedColumnName="device_id"),
@JoinColumn(name="node_id",referencedColumnName="node_id"),
@JoinColumn(name="instance_id",referencedColumnName="instance_id")
})
@LazyCollection(LazyCollectionOption.FALSE)
private List<DevicePreset> devicePresets;
DEVICE PRESETS
@ManyToOne
private Device device;
@OneToOne(cascade=CascadeType.ALL)
@JoinColumns({ @JoinColumn(name="stored_preset_num",referencedColumnName=" stored_preset_num",insertable=false,updatable=false)
})
private StoredPreset storedPreset;
СОХРАНЕННАЯ ПРЕДУСТАНОВКА
@OneToOne
private DevicePreset devicePreset;