Hey,


I'm not an OpenJPA guy, but this is expected behavior.


You are using FetchType.LAZY which tells the JPA implementation to not read the 
relation immediate.


You can change this to EAGER and it will get loaded with parent.


The current behavior is as specified in the JPA spec.


Best,


Markus


.:: YAGNI likes a DRY KISS ::.






On Wed, Feb 24, 2016 at 8:50 PM -0800, "Alejandro Abdelnur" <tuc...@gmail.com> 
wrote:





Hello,

I've spent quite a bit of time searching around without any luck.

With OpenJPA 2.x, is it possible to get the foreign key of a OneToOne
relationship in the source without loading the target entity?

For example:

public class A {
  @Id
  private String id;
  private String name;
 @OneToOne(fetch = FetchType.LAZY)
  private B b;
  ...getters/setters
}

public class B {
  @Id
  private String id;
  private String name;
  ...getters/setters
}

Even if 'A a = em.find(A.class, "1")' loads the columns 'ID, NAME, B_ID'
from A if I do 'a.getB().getId()' this triggers a new query on B to get ID.

The closest related thing I found is
http://stackoverflow.com/questions/2593722/hibernate-one-to-one-getid-without-fetching-entire-object
, but this does not seem to apply to OpenJpa.

Similarly for ManyToOne relationships?

Thanks in advance.

Alejandro

Reply via email to