私は次のようになりますクラスがありますので、一方のエンティティが参照する、他にアソシエーションのエンティティの代わりにIDのみを取得するにはどうすればよいですか?
@Entity
public class NodeInnovation {
@Id
public long id;
@OneToOne
public EdgeInnovation replacedEdge;
}
ので、各テーブルマップ:
@Entity
public class EdgeInnovation {
@Id
public long id;
@ManyToOne
public NodeInnovation destination;
@ManyToOne
public NodeInnovation origin;
}
とこのようになります別のものをより多くのエンティティを参照する他のエンティティなど、最終的にデータベースからフェッチされる多くのエンティティが存在するようになります。キーの値(整数/ロング)のみを取得する方法はありますか、それが参照するエンティティは取得できませんか?このような何か:
@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;
}
は、ここでの例です。私は緑のものを欲しい、私はそれと一緒に赤ですべてのものを取得します。これは、メモリとディスクからの読み取り時間を無駄にします。
@Entity
public class NodeInnovation {
@Id
public long id;
@OneToMany(mappedBy="origin")
public List<EdgeInnovation> replacedEdges;
}
私は状況を取得していた場合:
私はあなたの2番目のオプションを働かせることができませんでしたので、私はちょうど最初の使用を終了しました。また、エンティティの更新に伴う問題も解決しました。 –