【发布时间】:2012-02-17 19:05:21
【问题描述】:
作为参考,我正在使用 Play!框架。
我有一个 JPA 实体,它表示设备上的传感器收集的数据。以下是类声明的相关部分:
@Entity
public class Data extends Model
{
@ManyToOne
Device dataCollector;
@ManyToOne
User user;
}
问题是,我需要能够从设备中收集数据,而不管它们是否已在本地数据库中注册,因此可能存在具有 ID 的设备,但该 ID 与本地数据库无关。
JPA 创建Data 表的方式,dataCollector 的列就是Device ID。但是,当您尝试检索具有无效 Device 的 ID 的记录时,它会引发异常,因为它无法实例化 Device 对象。
我可以通过简单地将Device 的ID 存储在Data 对象中来解决这个问题,但是我真的很喜欢JPA 为您创建对象的简洁性。如果Data 对象中没有ID 记录,有没有办法让JPA 给我一些Device 的默认实例化?
【问题讨论】:
标签: hibernate jpa playframework many-to-one