【发布时间】:2016-07-12 18:13:55
【问题描述】:
我有一个看起来像这样的类:
@Entity
public class EdgeInnovation {
@Id
public long id;
@ManyToOne
public NodeInnovation destination;
@ManyToOne
public NodeInnovation origin;
}
还有一个看起来像这样的:
@Entity
public class NodeInnovation {
@Id
public long id;
@OneToOne
public EdgeInnovation replacedEdge;
}
所以每个表都映射到另一个,所以一个实体将引用其他实体,这些实体将引用更多实体,依此类推,因此最终将有许多实体将从数据库中获取。有没有办法只获取键的值(整数/长整数)而不是它所指的实体?像这样:
@ManyToOne(referToThisTable="NodeInnovation")
@Entity
public class EdgeInnovation {
@Id
public long id;
@ManyToOne(referToTable="NodeInnovation")
public Long destination;
@ManyToOne(referToTable="NodeInnovation")
public Long origin;
}
和
@Entity
public class NodeInnovation {
@Id
public long id;
@OneToOne(referToTable="EdgeInnovation")
public Long replacedEdge;
}
这是一个例子。我想要绿色的东西,我得到所有红色的东西。这会浪费内存和从磁盘读取的时间。
【问题讨论】:
标签: java jpa annotations eclipselink derby