¿Cómo puedo recuperar la clave foránea de una asignación JPA ManyToOne sin tocar la tabla de destino?

Tengo las siguientes dos clases anotadas que utilizo para construir un gráfico:

@Entity
@Table(name = "Edge")
public class Edge
{
    /* some code omitted for brevity */

    @ManyToOne
    @JoinColumn(name = "ixNodeFrom", nullable = false)
    private Node         _nodFrom;

    @ManyToOne
    @JoinColumn(name = "ixNodeTo", nullable = false)
    private Node         _nodTo;

    /* some code omitted for brevity */
}

@Entity
@Table(name = "Node")
public class Node
{
    /* some code omitted for brevity */

    @OneToMany(mappedBy = "_nodTo")
    private Set<Edge>    _rgInbound;

    @OneToMany(mappedBy = "_nodFrom")
    private Set<Edge>    _rgOutbound;

    /* some code omitted for brevity */
}

Ahora, cuando construyo el gráfico, emito dos consultas para obtener todas las filas de cualquier tabla y configurar las referencias hijo / padre, para lo cual necesito los identificadores almacenados en elEdge mesa.

Debido a que he definido la relación entre las dos tablas en JPA, acceder al objeto de borde para obtener los identificadores de los dos nodos desencadena dos instrucciones SQL por borde, cuando el proveedor de JPAperezosamente * carga los nodos asociados. Como ya tengo los objetos de nodo y los identificadores ya se han cargado desde la tabla de borde, quiero omitir esas consultas, ya que tardan muchísimo tiempo en gráficos más grandes.

Traté de agregar estas líneas a laEdge clase, pero mi proveedor de JPA quiere que haga un mapeo de solo lectura, y parece que no puedo encontrar la manera de hacerlo:

@Column(name = "ixNodeTo")
private long _ixNodeTo;

@Column(name = "ixNodeFrom")
private long _ixNodeFrom;

Estoy usando Eclipselink y MySQL, si es que importa.

** El comportamiento predeterminado para@ManyToOne en realidad está ansioso por cargar, verLa respuesta de Pascal*

Respuestas a la pregunta(5)

Su respuesta a la pregunta