In a bidirectional relationship, the owning side is the one that carries the foreign key and whose state is saved to the database; the other side declares mappedBy, which names the owning attribute, and is merely a reflection. Both sides must be kept consistent in memory.
Example
@OneToMany(mappedBy = "client")
List<Commande> commandes;