 <p>You're modeling <a href="http://docs.jboss.org/hibernate/orm/5.1/userguide/html_single/Hibernate_User_Guide.html#associations-one-to-many-bidirectional" rel="nofollow">bidirectional <code>@OneToMany</code></a> and as shown in the example in the documentation you're responsible for setting the <em>parent</em> value on the <em>child</em> entity:</p> <pre><code>val order = orderRepository.save(Order(...).apply{ ... route = GeoHelpers.placesListToEntities(this, data.places), ... }) fun placesListToEntities(order:Order, points: List&lt;PlaceDto&gt;) = points.map { Route( order = order, location = Helpers.geometry(it.location.latitude, it.location.longitude), title = it.title ) } </code></pre> <p>PS. Since <code>Route</code> is an <a href="http://stackoverflow.com/questions/1695930/value-object-or-entity-object-in-my-hibernate-mapping">entity</a> you could change your model a bit to enforce the constraints on the langauge level i.e:</p> <pre><code>class Route internal constructor() { lateinit var order: Order constructor(order: Order) : this() { this.order = order } } </code></pre> <p>See <a href="http://stackoverflow.com/questions/32038177/kotlin-with-jpa-default-constructor-hell">this question</a> for more details.</p>