I just tried hibernate-issues: reversedOneToOne removing the PERSIST from the SpecialPricePoint OneToOne association with SPecialProduct and the tests pass
ublic class SpecialPricePoint { .... @OneToOne(mappedBy = "wholesalePrice", cascade = { MERGE, REMOVE }, orphanRemoval = true) @Cache(usage = READ_WRITE) private SpecialProduct product; ... }