Why I don't like them?
- It corrupts the domain object. Domain object doesn't have to know that it is meant for persistence to a relational database.
- Vis-a-vis Coherence, CacheStore that is meant to interact with an external data source is not necessarily meant for relational database. CacheStore could hook a database, a Directory server or even another Coherence cluster. @OneToOne has no sense if the external datasource is a Coherence cluster.
- Having a separate OR Mapping is much cleaner