Hibernate сохраняет дочерний объект с нулевым родительским идентификатором

Hibernate не хочет сохранять идентификаторы для дочерних объектов. У меня есть следующие таблицы:

@Entity @Table(name = "ct_orders") data class Order( @Id @Column(name = "id") @GeneratedValue(strategy = javax.persistence.GenerationType.IDENTITY) val id: Int = 0, @OneToMany(fetch = FetchType.LAZY, cascade = arrayOf(CascadeType.ALL), mappedBy = "order") val route: List<Route>? = null, ... ) @Entity @Table(name = "ct_routes") @JsonIgnoreProperties("id", "order") data class Route( @Id @Column(name = "id") @GeneratedValue(strategy = GenerationType.IDENTITY) val id: Int = 0, @Column val location: Point = GeoHelpers.point(), @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "order_id") val order: Order? = null, @Column val title: String = "" ) 

ct_routes с нулевым значением в order_id. Есть ли проблемы с отношениями? Или, может быть, что-то не так в моем коде?

Вот часть кода, которая сохраняет объект Order:

 val order = orderRepository.save(Order( ... route = GeoHelpers.placesListToEntities(data.places), ... )) fun placesListToEntities(points: List<PlaceDto>) = points.map { Route( location = Helpers.geometry(it.location.latitude, it.location.longitude), title = it.title ) } 

Вы моделируете двунаправленную @OneToMany и, как показано в примере в документации, за которую вы отвечаете за установку родительского значения дочернего объекта:

 val order = orderRepository.save(Order(...).apply{ ... route = GeoHelpers.placesListToEntities(this, data.places), ... }) fun placesListToEntities(order:Order, points: List<PlaceDto>) = points.map { Route( order = order, location = Helpers.geometry(it.location.latitude, it.location.longitude), title = it.title ) } 

PS. Поскольку Route является сущностью, вы можете немного изменить свою модель для обеспечения ограничений на уровень langauge, то есть:

 class Route internal constructor() { lateinit var order: Order constructor(order: Order) : this() { this.order = order } } 

См. Этот вопрос для получения более подробной информации.

Intereting Posts
Как передать vararg в функцию или конструктор varag в Kotlin? построение графа для кода kotlin PubNub подписаться на андроид kotlin Используется плагин kotlin-spring, все еще получающий класс не открытую ошибку Сделать элемент RecyclerView для полноэкранного просмотра с помощью перехода / анимации Не удалось разрешить хост pokeAPI Ввод / вывод дженериков для абстрактного контейнерного инструмента в Котлине? Как лучше всего найти элемент в вложенных списках? Пользовательский сериализатор Джексона или объект ценности? Решение основного наследования Котлина BottomSheetCallback из модального нижнего листа Пустой цвет плитки MapView на Android Переопределить аннотацию @JsonIgnore для некоторых контроллеров. Джексон. весна Как реорганизовать представление, чтобы разрешить фильтрацию элементов, привязанных к наблюдаемомуArrayList, внутри приложения tornadofx ojAlgo Линейная оптимизация – предотвращение дублирования рабочей смены?