title: Hibernate one-to-one: getId() without fetching entire object
body: <p>I want to fetch the id of a one-to-one relationship without loading the entire object.  I thought I could do this using lazy loading as follows:</p>
  
  <pre><code>class Foo { 
      @OneToOne(fetch = FetchType.LAZY, optional = false)
      private Bar bar; 
  }
  
  
  Foo f = session.get(Foo.class, fooId);  // Hibernate fetches Foo 
  
  f.getBar();  // Hibernate fetches full Bar object
  
  f.getBar().getId();  // No further fetch, returns id
  </code></pre>
  
  <p>I want f.getBar() to <em>not</em> trigger another fetch.  I want hibernate to give me a proxy object that allows me to call .getId() without actually fetching the Bar object.  </p>
  
  <p>What am I doing wrong?  </p>