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
Как autowire SessionFactory в спящем режиме 5? Kotlin Либо монада: рефакторинг вызова конструктора для обработки CPS Как не передавать данные Flowable для модульных тестов? Странная ситуация возникает при сортировке слияния в Котлине Сохранение объекта во внутренней памяти в android (kotlin) Объявление функции Kotlin: знак равенства перед фигурными скобками Как предотвратить загрузку в режиме «Создание фрагмента» перед Java? Как создать диаграммы и UML кода Котлина? Тип несоответствия: предполагаемый тип T, но kotlin.Any ожидалось Общая функция расширения Котлина с базовыми типами без отражения API Котлин заставляет меня рухнуть! Является ли это функцией или классом, когда я читаю код? RxKotlin: попытка добавления пользовательских ошибок в ловушку Как связать событие onClick из представления с помощью Android Binding Library и Kotlin? Как я могу условно добавить асинхронную операцию в середине потока RxJava? Выражение JOOQ