Извините за короткий ответ, это с телефона. Во-первых, в EclipseLink возможно иметь как целочисленный идентификатор FK, так и сам объект как различные свойства; просто дайте обоим названиям столбцов, но пометьте только один из них как обновляемый и вставляемый. Вы сможете установить связь с одним из свойств, но не обоими.
Во-вторых, я использую как сопоставления сущностей, так и объекты DAO со сложными запросами JPA для доступа к сущностям, с той разницей, что я использую запросы для множественных объединений и функций агрегации или когда необходима предварительная выборка, и я использую сопоставления сущностей при обходе граф сущностей. Тем не менее, везде необходим сравнительный анализ - у меня был сложный запрос, который был быстрее (60 мс против 300 мс) при разложении на отображения сущностей.