Для справки, я использую Play! Фреймворк.Отношение JPA к возможно несуществующему объекту
У меня есть объект JPA, который представляет данные, собранные датчиками на устройстве. Вот соответствующие части объявления класса:
@Entity
public class Data extends Model
{
@ManyToOne
Device dataCollector;
@ManyToOne
User user;
}
Проблема, мне нужно, чтобы иметь возможность собирать данные с устройств, независимо от их регистрации в локальной базе данных, так что может быть устройство, которые имеют идентификатор , но идентификатор не имеет отношения к локальной базе данных.
Путь JPA создает таблицу Data
, колонка для dataCollector
всего лишь Device
ID. Но когда вы пытаетесь получить запись с идентификатором для недопустимого Device
, он выдает исключение, потому что он не может создать объект Device
.
Возможно, я решил решить эту проблему, просто сохранив идентификатор Device
в объектах Data
, но мне очень понравилась чистота JPA, создающая объект для вас. Есть ли способ заставить JPA предоставить мне по умолчанию экземпляр Device
, если нет записи для ID в объекте Data
?