I want to create a `@OneToOne` mapping where the root entity has a reference to a sub entity by foreign key contraint.

```
@Entity
public class MainEntity {
    @Id private long id;

    @OneToOne(cascade = CascadeType.ALL, orphanRemoval = true)
    @JoinColumn(name = "fk_sheet_id", foreignKey = @ForeignKey(name = "fk_sheet"))
    private SheetEntity sheet;
}

@Entity
public class Sheet {
    @Id private long id;
    //...

    @OneToOne(mappedBy = "sheet")
    private GiataHotelEntity mainEntity;
}

```

Problem: when I go to the database and chose `truncate cascade` on the `MainEntity`, then the assiciated `@OneToOne` `Sheet` is *not* removed.

If I reverse the mapping and make `Sheet` the *owning-side*, then this cascaded delete would work! But I want the MainEntity to be the owning side.

What might I be doing wrong here?