I think you've really got a many-to-many there, with some artificial restrictions in your domain. You either need to create an entity for your intrim table, and then create two one-to-one's, or just map it as a many-to-many. If you go the m2m route you could map it as a field and create a property that just exposes the first item, but that's a little hackish.